1. 程式人生 > >友盟分享 微信分享沒有回撥資訊

友盟分享 微信分享沒有回撥資訊

微信分享沒有回撥資訊

問題:分享成功,取消,失敗沒有提示資訊

不知道現在還有沒有用友盟微信分享遇到問題的,如果有,希望這裡的內容能幫到你。

其實友盟官網已經說得很清楚了, 只不過我很多人有時候直接baidu,查不到解決辦法,而且有些解決辦法是比較老版本的分享sdk,並不適用新的sdk。

現在最新版的sdk 6.2.0分享的微信,qq回撥是沒問題的,一般都是我們配置上出錯導致分享回撥不生效。

這裡寫圖片描述

接下來對官網說明進行詳解:

4.2 微信授權或分享之後沒有回撥

1.你可以呼叫 UmengTool.checkWx(this)檢查是否配置成功 **(隨便寫在一個activity中進行檢視)**

2.檢查微信回撥WXEntryActivity是否是在包名路徑下,例如你的包名是com.a.b,那麼這個activity應該放在com.a.b.wxapi資料夾下

這裡得注意下, 正常下情況下,建立專案的時候, 一般java目錄下的包名和uild.gradle檔案中的 applicationId "com.a.b"都是一致的,所以我們在整合分享sdk 把wxapi複製到com.a.b下是可以正常回調的。

但是當你發現回撥不成功的時候,需要去檢查一下這幾個地方,
1.java目錄的包名是否和applicationId中一致。一致就將wxapi複製到該包路徑下
2.java目錄的包名是否和applicationId中不一致。就在java包下建立一個和applicationId一致的包名,再將wxapi複製到該包路徑下。



為什麼要去檢查? build.gradle
檔案中的 applicationId "com.a.b",但其實有時候有些專案 java目錄下的包名並不和我們applicationId名字一樣。

這裡寫圖片描述

3.由於您加了支付的相關功能,在WXEntryActivity中寫入了你們自己的邏輯,而把我們的邏輯覆蓋了,導致不能回撥,如下程式碼所示即可

public class WXEntryActivity extends WXCallbackActivity {
@Override
public void onResp(BaseResp resp) { 


    if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
        switch
(resp.errCode) { case 0: Toast.makeText(this, "支付成功!", Toast.LENGTH_LONG).show(); break; case -2: Toast.makeText(this,"支付取消!",Toast.LENGTH_LONG).show(); break; case -1: Toast.makeText(this,"支付失敗!",Toast.LENGTH_LONG).show(); break; default: Toast.makeText(this,"支付出錯!",Toast.LENGTH_LONG).show(); break; } } else { //這裡的意思就是如果不是微信支付, 就繼續走原來的邏輯,那就是給super處理 super.onResp(resp);//一定要加super,實現我們的方法,否則不能回撥 } } }

本片部落格只介紹了這一點,如有其它sdk使用上的問題,詳細參照友盟官網文件。