解決6.5.16及以上版本微信內部M頁不能喚起APP

最近微信喚起app的資料急速下降,產品同學告訴我們大事來了,微信不能喚起Android的App了~!~!
微信語錄
為提升微信 webivew 中網頁開啟其他應用的體驗,防止誘導點選、強制跳出等不合理行為, 我們的“喚起外部客戶端”的能力統一調整為:
- 1、 在 6.5.16 及以上版本的微信客戶端中,貴方網頁將只能使用 launchApplication 介面,打
開其他應用。該介面會在喚起前要求使用者接受彈窗確認。 - 2、 在 6.5.16 以下版本的微信客戶端中,貴方網頁可以繼續使用現有方式,開啟其他應用。
解決版本
我們在接入微信的 opensdk
的時候會在自己專案程式碼中包含 xxx.xxx.xxx.wxapi.WXEntryActivity
這個頁面。
在 6.5.16 及以上版本的微信客戶端中,微信首先喚起的是 xxx.xxx.xxx.wxapi.WXEntryActivity
這個頁面,將引數放在 extInfo
欄位中,由第三方 APP 自行解析處理 ShowMessageFromWX.Req 的微信回撥。
public class WXEntryActivity extends WXCallBack { @Override public void onReq(BaseReq req) { super.onReq(req); if (req != null && req instanceof ShowMessageFromWX.Req) { ShowMessageFromWX.Req request = (ShowMessageFromWX.Req) req; if (request.message != null && request.message.mediaObject != null && request.message.mediaObject instanceof WXAppExtendObject) { WXAppExtendObject appExtendObject = (WXAppExtendObject) request.message.mediaObject; //喚起app的啟動頁面,將scheme協議中的資料進行透傳 Intent intent = new Intent(this, LaunchActivity.class); intent.setData(Uri.parse(appExtendObject.extInfo)); startActivity(intent); } } } }
微信官方具體描述我們可以參見: 微信webview喚起外部客戶端接入說明2018版
總結
微信這樣做,將微信與其下游的app的之前的影響繼續加強。雖然我們做了不同的適配,但是同時能得到微信喚起app的成功或者失敗的資料。在網際網路產品競爭激烈的今天我們不僅僅要做好使用者產品也好做好技術產品。
文章到這裡就全部講述完啦,若有其他需要交流的可以留言哦~!~!
想閱讀作者的更多文章,可以檢視我個人部落格 和公共號:
