Android 友盟分享躺过的几个坑,大坑,坑爹啊
2015-09-21 11:48
513 查看
前言:公司上线了一个项目,做Android 客户端集成友盟分享,在做得过程中,遇到了下面3个问题,希望其他小伙伴注意。
( 友盟在线客服 QQ : 800083942 )
错误1:
1、错误描述
我是照着友盟的集成文档一步一步的集成的,做完后,发现qq空间分享不成功,总是出现失败,下面是失败截图
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921112654928-1263079584.png)
2、错误原因:分享链接错误
因为我们的应用还没有上线,所以分享的链接是本地搭建的服务器地址,比如:"http://192.168.1.132:8001/app“
就是因为这个分享链接的问题,导致我分享到qq空间出现异常。如果把这个链接换成: ”http://www.baidu.com“,分享就成功了。
总结:分享链接最好用带域名的链接,不要使用带ip地址的链接
错误2:错误的集成qq appId
1、错误的集成
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921114704256-1390179204.png)
2、正确的集成
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921114729131-904462854.png)
二、关于分享成功回调的问题
1、关于 WXEntryActivity
1.1:路径的问题
1.1.1 :获取包名
这里请注意包名是app的包名,不是代码的包名,也不是AndroidManifest.xml 里面的package
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921121327178-231873168.png)
Android studio正确获取的包名的方法:
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921120855990-682063173.jpg)
1.1.2 设置WXEntryActivity路径 ,假设 1.1.1 中的路径是com.sp.szry
在Android studio 中创建一个包名为 com.sp.szry.wxapi
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921121409272-527848381.png)
1.1.3 在AndroidManifest.xml 里面配置 WXEntryActivity 路径
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921121725475-335587806.png)
1.2:代码的问题
2、关于分享回调
三:新浪微博分享的问题
错误描述:在分享中,我设置了分享的内容,分享的链接地址,分享的图片。分享完成后发现分享的http地址打不开,于是找到了一下解决方法
分享原代码:(错误的 )
正确的代码 :(正确的 ) (注意:分享的链接 要 拼接到 分享内容的后面 , 否则分享链接失效 )
( 友盟在线客服 QQ : 800083942 )
错误1:
1、错误描述
我是照着友盟的集成文档一步一步的集成的,做完后,发现qq空间分享不成功,总是出现失败,下面是失败截图
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921112654928-1263079584.png)
2、错误原因:分享链接错误
因为我们的应用还没有上线,所以分享的链接是本地搭建的服务器地址,比如:"http://192.168.1.132:8001/app“
就是因为这个分享链接的问题,导致我分享到qq空间出现异常。如果把这个链接换成: ”http://www.baidu.com“,分享就成功了。
总结:分享链接最好用带域名的链接,不要使用带ip地址的链接
错误2:错误的集成qq appId
1、错误的集成
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921114704256-1390179204.png)
2、正确的集成
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921114729131-904462854.png)
二、关于分享成功回调的问题
1、关于 WXEntryActivity
1.1:路径的问题
1.1.1 :获取包名
这里请注意包名是app的包名,不是代码的包名,也不是AndroidManifest.xml 里面的package
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921121327178-231873168.png)
Android studio正确获取的包名的方法:
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921120855990-682063173.jpg)
1.1.2 设置WXEntryActivity路径 ,假设 1.1.1 中的路径是com.sp.szry
在Android studio 中创建一个包名为 com.sp.szry.wxapi
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921121409272-527848381.png)
1.1.3 在AndroidManifest.xml 里面配置 WXEntryActivity 路径
![](http://images2015.cnblogs.com/blog/605655/201509/605655-20150921121725475-335587806.png)
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 );
相关文章推荐
- Android线程的创建与销毁
- 调用Android系统自带的图片浏览器
- Android之取消ViewPage+Fragment的预加载
- Android开发之拍照功能实现
- Android开发监听短信数据库
- Android 连续按两次back键退出系统
- android handler的警告Handler Class Should be Static or Leaks Occur问题处理
- Android获取系统外置存储卡路径的方法
- Android Studio如何添加工程为library
- Android_RadioGroup实现Tab
- Android M新的运行时权限开发者需要知道的一切
- [Android Pro] Android Support 包里究竟有什么
- Android activity和fragment异步传输数据的问题
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- Android 消息机制 (Handler、Message、Looper)
- AndroidStudio 环境变量配置
- Android之socket服务端
- Android
- android 组合模式
- Android简单的将Activity改为Fragment