前言:公司上線了一個項目,做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 );