您的位置:首页 > 移动开发 > Android开发

Android 友盟分享躺过的几个坑,大坑,坑爹啊

2015-09-21 11:48 513 查看
前言:公司上线了一个项目,做Android 客户端集成友盟分享,在做得过程中,遇到了下面3个问题,希望其他小伙伴注意。

( 友盟在线客服 QQ : 800083942 )

错误1

1、错误描述

我是照着友盟的集成文档一步一步的集成的,做完后,发现qq空间分享不成功,总是出现失败,下面是失败截图



2、错误原因:分享链接错误

因为我们的应用还没有上线,所以分享的链接是本地搭建的服务器地址,比如:"http://192.168.1.132:8001/app“

就是因为这个分享链接的问题,导致我分享到qq空间出现异常。如果把这个链接换成: ”http://www.baidu.com“,分享就成功了。

总结:分享链接最好用带域名的链接,不要使用带ip地址的链接

错误2:错误的集成qq appId

1、错误的集成



2、正确的集成



二、关于分享成功回调的问题

1、关于 WXEntryActivity

1.1:路径的问题

1.1.1 :获取包名

这里请注意包名是app的包名,不是代码的包名,也不是AndroidManifest.xml 里面的package



Android studio正确获取的包名的方法:



1.1.2 设置WXEntryActivity路径 ,假设 1.1.1 中的路径是com.sp.szry

在Android studio 中创建一个包名为 com.sp.szry.wxapi



1.1.3 在AndroidManifest.xml 里面配置 WXEntryActivity 路径



1.2:代码的问题

public class WXEntryActivity extends WXCallbackActivity  {

@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
}

@Override
public void onReq(BaseReq req) {
super.onReq(req);
}

//微信回调
@Override
public void onResp(BaseResp resp) {   //分享之后的回调
switch ( resp.errCode  ) {
case  BaseResp.ErrCode.ERR_OK : //正确返回
//Toast.makeText(this, "微信分享成功回调了111", Toast.LENGTH_SHORT).show();
break;
}
super.onResp(resp);
}
}


2、关于分享回调

//分享回调
ShareCallBackLister shareCallBackLister ;


if ( shareCallBackLister == null ){
shareCallBackLister = new ShareCallBackLister();
}

//打开分享面板
mController.openShare(ShareWebActivity.this, shareCallBackLister ) ;


/**
* 友盟分享回调
*/
class ShareCallBackLister implements SocializeListeners.SnsPostListener {

@Override
public void onStart() {
}

@Override
public void onComplete(SHARE_MEDIA share_media, int eCode , SocializeEntity socializeEntity) {
if (eCode == 200) {  //分享成功

if (SHARE_MEDIA.SINA.toString().equals(share_media.toString())  ) {   //新浪微博

}else if ( SHARE_MEDIA.WEIXIN.toString().equals(share_media.toString()) ){  //微信

}else if ( SHARE_MEDIA.WEIXIN_CIRCLE.toString().equals(share_media.toString()) ){ //微信朋友圈

}else if ( SHARE_MEDIA.QQ.toString().equals( share_media.toString()) || SHARE_MEDIA.QZONE.toString().equals( share_media.toString() )){   //qq

}
} else {
String eMsg = "";
if (eCode == -101){
eMsg = "没有授权";
}
//分享失败
}
}
}


三:新浪微博分享的问题

错误描述:在分享中,我设置了分享的内容,分享的链接地址,分享的图片。分享完成后发现分享的http地址打不开,于是找到了一下解决方法

分享原代码:(错误的 )

//新浪微博
SinaShareContent sina = new SinaShareContent();

//分享标题
sina.setTitle( shareTitle );
//分享内容
sina.setShareContent( shareText  );
//分享链接
sina.setTargetUrl( shareUrl );

//分享图片
if ( shareImageUrl.length() > 3 ){
sina.setShareImage(new UMImage(activity, shareImageUrl));
}else {
sina.setShareImage(new UMImage(activity, R.drawable.logo144));
}

ShareWebActivity.mController.setShareMedia( sina );


正确的代码 :(正确的 ) (注意:分享的链接 要 拼接到 分享内容的后面 , 否则分享链接失效 )

//新浪微博
SinaShareContent sina = new SinaShareContent();

//分享标题
sina.setTitle( shareTitle );
//分享内容
sina.setShareContent( shareText  + shareUrl );

//分享图片
if ( shareImageUrl.length() > 3 ){
sina.setShareImage(new UMImage(activity, shareImageUrl));
}else {
sina.setShareImage(new UMImage(activity, R.drawable.logo144));
}

ShareWebActivity.mController.setShareMedia( sina );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: