一、问题
使用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进行自定义。