ShareSDK分享遇到的问题及解决方法

1、UI的修改。因为ShareSDK已经把分享界面九宫格集成好,减少了我们很大劳动力。但是有时候我们的项目不一定要用九宫格的显示方式,我们就必须找到对应代码进行修改。在PlatformGridView以下代码可进行每行每列显示几个分享平台的操作。
 if(whR < 0.6) {
	COLUMN_PER_LINE = 3;
	LINE_PER_PAGE = 3;
} else if (whR < 0.75) {
	COLUMN_PER_LINE = 3;
	LINE_PER_PAGE = 2;
} else {
	LINE_PER_PAGE = 1;
	if (whR >= 1.75) {
		COLUMN_PER_LINE = 6;
	} else if (whR >= 1.5) {
		COLUMN_PER_LINE = 5;
	} else if (whR >= 1.3) {
		COLUMN_PER_LINE = 4;
	} else {
		COLUMN_PER_LINE = 3;
	}
}

若要对九宫格的背景及文字进行调整则必须找到一下代码进行修改

修改文字及背景:

LinearLayout ll = new LinearLayout(context);
	ll.setOrientation(LinearLayout.VERTICAL);

	ImageView iv = new ImageView(context);
	int dp_5 = cn.sharesdk.framework.utils.R.dipToPx(context, 5);
	iv.setPadding(dp_5, dp_5, dp_5, dp_5);
	iv.setScaleType(ScaleType.CENTER_INSIDE);
	LinearLayout.LayoutParams lpIv = new LinearLayout.LayoutParams(
			LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
	lpIv.setMargins(dp_5, dp_5, dp_5, dp_5);
	lpIv.gravity = Gravity.CENTER_HORIZONTAL;
	iv.setLayoutParams(lpIv);
	iv.setImageBitmap(logo);
	ll.addView(iv);

	TextView tv = new TextView(context);
	tv.setTextColor(0xff000000);
	tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
	tv.setSingleLine();
	tv.setIncludeFontPadding(false);
	LinearLayout.LayoutParams lpTv = new LinearLayout.LayoutParams(
			LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
	lpTv.gravity = Gravity.CENTER_HORIZONTAL;
	lpTv.weight = 1;
	lpTv.setMargins(dp_5, 0, dp_5, dp_5);
	tv.setLayoutParams(lpTv);
	tv.setText(label);
	ll.addView(tv);
修改取消按钮的格式颜色边框等:

LinearLayout.LayoutParams lpBtn = new LinearLayout.LayoutParams(
		LayoutParams.MATCH_PARENT, cn.sharesdk.framework.utils.R.dipToPx(getContext(), 45));
int dp_10 = cn.sharesdk.framework.utils.R.dipToPx(getContext(), 10);
int dp_50 = cn.sharesdk.framework.utils.R.dipToPx(getContext(), 50);
lpBtn.setMargins(dp_50, dp_10, dp_50, dp_10);
btnCancel.setLayoutParams(lpBtn);
llPage.addView(btnCancel);
}
2、不同平台注意事项

(1)微信

问题1:调不起微信平台

APPKey用的是别人的,而且没有进行绕过设置,后来自己申请了新的APPKey也就正常了。

问题2 :微信回调不成功

微信朋友圈分享成功后没有进行回调,应用没有任何显示。

解决办法:将微信报名进行替换如下图所示

左边的微信包名应和AndroidManifest.xml中的包保持一致。

问题3:只分享图片不能分享文字

解决方法:成功申请APPKey并且不要绕过审核。

问题4:微信好友消失。

解决方法:Enable=false"中的false改为true就可以了。

2、新浪微博:

问题1:调起客户端后还未点击分享即出现“分享成功”提示。

解决方法:这是ShareSDK自身的问题,所以我改变方法,采用网页进行分享。

题2:采用网页分享后出现"访问出错了.你所访问的站点在新浪微博的认证失败,请联系****或者稍后再试.(error:redirect_uri_mismatch) 新浪微博版权所有."

解决办法:回调授权页面中的网址应和ShareSDK.xml中新浪微博的网址保持一致才可。

3、腾讯微博

问题:调不起客户端。

解决方法:暂时未找到,后来用网页代替。

3、QQ空间

问题:点击QQ分享弹出页面后即显示分享失败,但是后来点击弹出的分享界面中的发送时却可以分享。

解决方法:自己申请QQ空间的APPkey,并且在 AndroidManifest.xml中进行对应设置。但是设置后还是回调失败,后来改用网页分享回调就成功了。这可能也是S哈热SDK的不足之处吧。

其他平台只要对照Demo一般问题不大。

下面是我MainActivity中的代码,特别简单,需要设置的东西特别少。因为之前看到过的一个Demo中这部分特别多,后来精简了许多,但功能实现上一点问题都没有。






你可能感兴趣的:(安卓开发,第三方分享)