一、问题
使用ShareSDK的时候,如果不是使用OneKeyShare,默认是在后台进行分享的,没有任何提示,也看不到到底分享了什么内容,需要自定义分享平台列表界面和分享内容界面。图省事,ShareSDK提供了OneKeyShare,一键快捷分享,不仅能弹出九宫格窗口,而且看得到分享内容界面,还可以选择好友分享和多平台同时分享,十分的方便。我正在集成的是含有Facebook等5个平台的分享,发现问题:
下面是分享代码:
/********* 一键分享 ************/
public static void showShare(Context context, String shareTxt, String imagePath) {
OnekeyShare oks = new OnekeyShare();
// 关闭sso授权
oks.disableSSOWhenAuthorize();
// 分享时Notification的图标和文字
oks.setNotification(R.drawable.ic_launcher, context.getResources().getString(R.string.app_name));
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
<span style="color:#ff0000;">oks.setTitle(context.getResources().getString(R.string.share));</span>
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
// oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
<span style="color:#ff0000;">oks.setText(shareTxt);
oks.setImagePath(imagePath);</span>
// url仅在微信(包括好友和朋友圈)中使用
// oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
// oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
// oks.setSite( context.getResources().getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
// oks.setSiteUrl("http://sharesdk.cn");
oks.show(context);
}
其实,从上面可以看出,真正分享的内容就3条,一个标题,一个正文(由产品的名称和产品链接组成),一个图片(本地的,先下载好)。
发现问题:
1.分享的正文内容长度有限制。
2.分享的正文中含有超链接,没有突出显示。
二、解决方法
找到OneKeyShare的源代码,进行修改,找到EditPage这个类:
1.
private static final int MAX_TEXT_COUNT =500;
这个是修改字符长度的,最好改大一点,如果分享时,内容比较长,而且又选择了很多好友,会超出限制,所以设置长一点。
2.
// 文字输入区域
etContent = new EditText(getContext());
//设置文字区域含有超链接的颜色
etContent.setAutoLinkMask(Linkify.ALL);
设置超链接,选择所有。
其实,OneKeyShare就是自定义了EditText控件,用于控制分享时的内容,标题,图片等信息,我们可以自己修改它的属性。如果自定义分享界面,可以参考OneKeyShare进行自定义。