友盟分享 微信分享沒有回撥資訊
阿新 • • 發佈:2019-02-15
微信分享沒有回撥資訊
問題:分享成功,取消,失敗沒有提示資訊
不知道現在還有沒有用友盟微信分享遇到問題的,如果有,希望這裡的內容能幫到你。
其實友盟官網已經說得很清楚了, 只不過我很多人有時候直接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使用上的問題,詳細參照友盟官網文件。