1. 程式人生 > >解決QQ分享沒有收到【成功回撥】的問題

解決QQ分享沒有收到【成功回撥】的問題

寫在前面的話:一個做了兩遍的QQ分享,再次做的時候,直接邊拷貝邊修改,執行後發現沒問題。

但是:分享成功卻收不到成功的回撥。

解決辦法:首先請點選這裡,一個字一個字的對照著看看自己那裡跟文件寫的不一樣,重點看一下自己清單檔案的那個schema,是不是按照tencent[appId]的格式寫的。

展開講講開發步驟

只要按照官方文件一點點的寫,還真得都沒有問題,出問題了,大都是自己大眼一看,木有問題啊,這該死的SDK,也不報錯,也不給我回調……

  1. 我的開發環境是把分享這個模組放到一個module裡面,沒有放在主module,也是沒有問題的。
  2. 文件連結有一部分內容比較老,文件中說如果要接收成功回撥,需要按文件要求重寫onActivityResult方法,但實際上一旦執行了onActivityResult方法,那個 Intent data 基本上就是null 了,也就是流程出錯了,整合步驟有誤需要修改。正常流程時只會呼叫傳入的UIListener。

下面再補充幾個前人留下的注意事項,自己對照著看吧(點選檢視原文)
1.剛開始點選分享老是沒反應,後來才發現Qzone分享必須設定縮圖才行

Tencent tencent = Tencent.createInstance("你的appId", mActivity);
Bundle params = new Bundle();
params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, url);
params.putString(QzoneShare.SHARE_TO_QQ_APP_NAME, "我是應用程式名稱");
params.putString("title"
, "我是標題"); params.putString("summary", text); ArrayList<String> images = new ArrayList<String>(); images.add(thumbPath); params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, images); tencent.shareToQzone(mActivity, params, new IUiListener()); // 剛開始點選分享老是沒反應,後來才發現Qzone分享必須設定縮圖才行

2.剛開始老是縮圖顯示不了,原來QQ分享有本地圖片和線上圖片之分,一定要只選其一

Tencent tencent = Tencent.createInstance("appId", mActivity);
Bundle params = new Bundle();
params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, url);
params.putString(QzoneShare.SHARE_TO_QQ_APP_NAME, "我是應用程式名稱");
params.putString("title", "我是標題");
params.putString("summary", 我是簡介);

params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, thumbPath);
tencent.shareToQQ(mActivity, params, new IUiListener());

// 剛開始老是縮圖顯示不了,原來QQ分享有本地圖片和線上圖片之分,一定要只選其一
  1. 剛開始發現,onComplete、onCancell、onError這三個方法沒一個被呼叫了
public void onActivityResult(int requestCode, int resultCode, Intent data) {
//      Tencent.onActivityResultData(requestCode, resultCode, data, mUiListener);
        if(requestCode == Constants.REQUEST_QQ_SHARE || requestCode == Constants.REQUEST_QZONE_SHARE){
            if (resultCode == Constants.ACTIVITY_OK) {
                Tencent.handleResultData(data, mUiListener);
            }
        }
    }
// 剛開始發現,onComplete、onCancell、onError這三個方法沒一個被呼叫了,也就導致沒有辦法統計分享成功比率
// 微博分享就不需要在onActivity中去觸發WeiboAuthListener的方法呼叫

再強調一次,上述第三點我是不同意的,一但走到了onActivityResult方法,就代表不會走分享成功的回調了。

還有個一個給出混淆建議的哥們(點選檢視原文)

  1. 混淆配置如下
-keep class com.tencent.open.TDialog$*
-keep class com.tencent.open.TDialog$* {*;}
-keep class com.tencent.open.PKDialog
-keep class com.tencent.open.PKDialog {*;}
-keep class com.tencent.open.PKDialog$*
-keep class com.tencent.open.PKDialog$* {*;}

如果還有問題,那就再找個哥們幫你對照著官方文件一個字元一個字元的找答案吧,相信你一定可以的,只是時間問題。
祝好。