Android 友盟分享躺过的几个坑,大坑,坑爹啊
前言:公司上線了一個項目,做Android 客戶端集成友盟分享,在做得過程中,遇到了下面3個問題,希望其他小伙伴注意。
? ? ? ? ( 友盟在線客服 QQ :?800083942? )?
?
錯誤1:
1、錯誤描述
? ? 我是照著友盟的集成文檔一步一步的集成的,做完后,發(fā)現(xiàn)qq空間分享不成功,總是出現(xiàn)失敗,下面是失敗截圖
? ??
2、錯誤原因:分享鏈接錯誤
? ?因為我們的應(yīng)用還沒有上線,所以分享的鏈接是本地搭建的服務(wù)器地址,比如:"http://192.168.1.132:8001/app“
? ?就是因為這個分享鏈接的問題,導(dǎo)致我分享到qq空間出現(xiàn)異常。如果把這個鏈接換成: ”http://www.baidu.com“,分享就成功了。
? ?總結(jié):分享鏈接最好用帶域名的鏈接,不要使用帶ip地址的鏈接
?
錯誤2:錯誤的集成qq appId?
? ? 1、錯誤的集成
? ??
??
2、正確的集成
? ??
?
二、關(guān)于分享成功回調(diào)的問題
? ? 1、關(guān)于?WXEntryActivity
? ? ? ? 1.1:路徑的問題 ??
? ? ? ? ? ? ? ? 1.1.1 :獲取包名
? ? ? ? ? ? ? ? ? ? ? ?這里請注意包名是app的包名,不是代碼的包名,也不是AndroidManifest.xml 里面的package
? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ?Android studio正確獲取的包名的方法:
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ??
? ? ? ? ?1.1.2 ?設(shè)置WXEntryActivity路徑 ,假設(shè) 1.1.1 中的路徑是com.sp.szry?
? ? ? ? ? ? ? ? ? 在Android studio 中創(chuàng)建一個包名為 ?com.sp.szry.wxapi
? ? ? ? ? ? ? ? ???
? ? ? ? ? ? ? ?
? ? ? ? ? 1.1.3 ?在AndroidManifest.xml 里面配置?WXEntryActivity 路徑
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ?1.2:代碼的問題
public class WXEntryActivity extends WXCallbackActivity {@Overridepublic void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {super.onCreate(savedInstanceState, persistentState);}@Overridepublic void onReq(BaseReq req) {super.onReq(req);}//微信回調(diào) @Overridepublic void onResp(BaseResp resp) { //分享之后的回調(diào)switch ( resp.errCode ) {case BaseResp.ErrCode.ERR_OK : //正確返回//Toast.makeText(this, "微信分享成功回調(diào)了111", Toast.LENGTH_SHORT).show();break;}super.onResp(resp);} }?
?
?
?
2、關(guān)于分享回調(diào)
//分享回調(diào) ShareCallBackLister shareCallBackLister ;?
if ( shareCallBackLister == null ){shareCallBackLister = new ShareCallBackLister();}//打開分享面板mController.openShare(ShareWebActivity.this, shareCallBackLister ) ;?
/*** 友盟分享回調(diào)*/class ShareCallBackLister implements SocializeListeners.SnsPostListener {@Overridepublic void onStart() {}@Overridepublic 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 = "沒有授權(quán)";}//分享失敗 }}}?
三:新浪微博分享的問題
? ? ? 錯誤描述:在分享中,我設(shè)置了分享的內(nèi)容,分享的鏈接地址,分享的圖片。分享完成后發(fā)現(xiàn)分享的http地址打不開,于是找到了一下解決方法
? ? ? 分享原代碼:(錯誤的 )
//新浪微博SinaShareContent sina = new SinaShareContent();//分享標(biāo)題 sina.setTitle( shareTitle );//分享內(nèi)容 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 );?
? ?正確的代碼 :(正確的 ?)?(注意:分享的鏈接 要 拼接到 分享內(nèi)容的后面 , 否則分享鏈接失效 )
//新浪微博SinaShareContent sina = new SinaShareContent();//分享標(biāo)題 sina.setTitle( shareTitle );//分享內(nèi)容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 );?
? ??
?
?
? ???
?
總結(jié)
以上是生活随笔為你收集整理的Android 友盟分享躺过的几个坑,大坑,坑爹啊的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Json解析过程中,我为什么用obje
- 下一篇: git 和 github 关系?