首页 > 代码库 > ShareSDK(一)-OneKeyShare内容长度有限制

ShareSDK(一)-OneKeyShare内容长度有限制

一、问题

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

















ShareSDK(一)-OneKeyShare内容长度有限制