解決QQ分享沒有收到【成功回撥】的問題
阿新 • • 發佈:2019-02-04
寫在前面的話:一個做了兩遍的QQ分享,再次做的時候,直接邊拷貝邊修改,執行後發現沒問題。
但是:分享成功卻收不到成功的回撥。
解決辦法:首先請點選這裡,一個字一個字的對照著看看自己那裡跟文件寫的不一樣,重點看一下自己清單檔案的那個schema,是不是按照tencent[appId]的格式寫的。
展開講講開發步驟
只要按照官方文件一點點的寫,還真得都沒有問題,出問題了,大都是自己大眼一看,木有問題啊,這該死的SDK,也不報錯,也不給我回調……
- 我的開發環境是把分享這個模組放到一個module裡面,沒有放在主module,也是沒有問題的。
- 文件連結有一部分內容比較老,文件中說如果要接收成功回撥,需要按文件要求重寫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分享有本地圖片和線上圖片之分,一定要只選其一
- 剛開始發現,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方法,就代表不會走分享成功的回調了。
還有個一個給出混淆建議的哥們(點選檢視原文)
- 混淆配置如下
-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$* {*;}
如果還有問題,那就再找個哥們幫你對照著官方文件一個字元一個字元的找答案吧,相信你一定可以的,只是時間問題。
祝好。