帮助与文档

> >

自定义UI界面分享,我们提供了两种方式:

一、放弃用ShareSDK的默认的九宫格界面

 

功能介绍:可以自己设计UI,不显示我们的分享菜单和编辑框,可以分两种事先方法:

分享形式a》可以调用快捷分享代码实现

设定自定义UI调用onekeyshare代码可参考帖子–不同平台分享不同内容,本帖子里有demo代码可下载下来参考

private void showShare(String platform) {
	final OnekeyShare oks = new OnekeyShare();
	//指定分享的平台,如果为空,还是会调用九宫格的平台列表界面
	if (platform != null) {
		oks.setPlatform(platform);
	}
	//关闭sso授权
	oks.disableSSOWhenAuthorize(); 
	// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
	oks.setTitle("标题");
	// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
	oks.setTitleUrl("http://sharesdk.cn");
	// text是分享文本,所有平台都需要这个字段
	oks.setText("我是分享文本");
	//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
	oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
	// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
	//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
	// url仅在微信(包括好友和朋友圈)中使用
	oks.setUrl("http://sharesdk.cn");
	// comment是我对这条分享的评论,仅在人人网和QQ空间使用
	oks.setComment("我是测试评论文本");
	// site是分享此内容的网站名称,仅在QQ空间使用
	oks.setSite("ShareSDK");
	// siteUrl是分享此内容的网站地址,仅在QQ空间使用
	oks.setSiteUrl("http://sharesdk.cn");

	//启动分享
	oks.show(this);
}

在设置的按钮下调用分享的代码:

public void onClick(View v) {
	//比如分享到QQ,其他平台则只需要更换平台类名,例如Wechat.NAME则是微信
	showShare(QQ.NAME);
}

 

分享形式b》指定单独平台的分享(无九宫格界面)

下面分别使用新浪微博和QQ空间作为例子,举例如何利用此方法实现分享功能。可以参考帖子:ShareSDK自定义界面+仿搜狐视频弹窗分享详解

1)新浪微博

ShareParams sp = new ShareParams();
sp.setText(“测试分享的文本”);
sp.setImagePath(“/mnt/sdcard/测试分享的图片.jpg”);

Platform weibo = ShareSDK.getPlatform(SinaWeibo.NAME);
weibo.setPlatformActionListener(paListener); // 设置分享事件回调
// 执行图文分享
weibo.share(sp);

2)QQ空间

ShareParams sp = new ShareParams();
sp.setTitle("测试分享的标题");
sp.setTitleUrl("http://sharesdk.cn"); // 标题的超链接
sp.setText("测试分享的文本");
sp.setImageUrl("http://www.someserver.com/测试图片网络地址.jpg");
sp.setSite("发布分享的网站名称");
sp.setSiteUrl("发布分享网站的地址");

Platform qzone = ShareSDK.getPlatform (QZone.NAME);
// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
qzone.setPlatformActionListener (new PlatformActionListener() {
	public void onError(Platform arg0, int arg1, Throwable arg2) {
		//失败的回调,arg:平台对象,arg1:表示当前的动作,arg2:异常信息
	}
	public void onComplete(Platform arg0, int arg1, HashMap arg2) {
		//分享成功的回调
	}
	public void onCancel(Platform arg0, int arg1) {
		//取消分享的回调
	}
});
// 执行图文分享
qzone.share(sp);

具体各个平台具体所需参数可以参考不同平台的详细参数说明

二、简单修改ShareSDK的九宫格界面

1、修改九宫格界面图标的顺序

功能介绍:可任意调整分享菜单中的社交平台的排序功能介绍:将编辑框的标题栏颜色与您的APP统一风格

只需要手动更新数组的顺序即可,SortId属性控制平台图标的排列顺序,从“1”开始,越大越后面,九宫格按照左到右,上到下顺序排列,

详情请见demo

    <SinaWeibo
        Id="1"
        SortId="1"
        AppKey="568898243"
        AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
        RedirectUrl="http://www.sharesdk.cn"
        ShareByAppClient="true"
        Enable="true" />

    <TencentWeibo
        Id="2" 
        SortId="2"
        AppKey="801307650"
        AppSecret="ae36f4ee3946e1cbb98d6965b0b2ff5c"
        RedirectUri="http://"
        Enable="true" />

2、隐藏分享图文编辑页面

功能介绍:进去编辑框自动分享,不显示分享菜单

在一键分享方法中添加代码并且修改下代码:

oks.setSilent(true);   隐藏编辑页面

oks.setSilent(false); 显示编辑页面

3、自定义分享菜单项

功能介绍:在分享菜单中加入自定义的按钮

快捷分享的九宫格列表提供添加自定义图标的功能,方法如下:

OnekeyShare oks = new OnekeyShare();
// 参考代码配置章节,设置分享参数
// 构造一个图标
		 Bitmap enableLogo = BitmapFactory.decodeResource(context.getResources(), R.drawable.ssdk_oks_logo_qq);
		 String label = "ShareSDK";
		 OnClickListener listener = new OnClickListener() {
		 	public void onClick(View v) {

		 	}
		 };
                 oks.setCustomerLogo(enableLogo, label, listener);
oks.show(context);

这样的代码可以多次使用,以添加任意数量的自定义图标。快捷分享默认会将自定义图标放在九宫格的最后位置,如果您需要放在它在其他地方,可以到PlatformGridView.PlatformAdapter中修改代码

注意:更多修改UI的说明参考这里

 

 

相关文档