Android?App跳轉(zhuǎn)微信小程序踩坑實(shí)戰(zhàn)
最近,有一個(gè)App跳轉(zhuǎn)小程序的需求,參考微信的官方文檔,接入還是比較簡(jiǎn)單的,不過(guò)中途遇到了一個(gè)坑,所以記錄一下。
首先,需要登錄微信開(kāi)放平臺(tái) 微信開(kāi)放平臺(tái),創(chuàng)建一個(gè)移動(dòng)應(yīng)用,然后系統(tǒng)會(huì)返回一個(gè)appid。

需要說(shuō)明的是,不管是跳轉(zhuǎn)微信小程序還是微信登錄、分享,都需要先在微信開(kāi)放平臺(tái)注冊(cè)appId。然后,就可以參考 Android APP拉取小程序的例子,在WebView中調(diào)用下面的代碼(可以是直接調(diào)用,也可以是協(xié)議攔截)。
String appId = "wxd930ea5d5a258f4f"; // 填移動(dòng)應(yīng)用(App)的 AppId,非小程序的 AppID IWXAPI api = WXAPIFactory.createWXAPI(context, appId); WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); req.userName = "gh_d43f693ca31f"; // 填小程序原始id req.path = path; ////拉起小程序頁(yè)面的可帶參路徑,不填默認(rèn)拉起小程序首頁(yè),對(duì)于小游戲,可以只傳入 query 部分,來(lái)實(shí)現(xiàn)傳參效果,如:傳入 "?foo=bar"。 req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可選打開(kāi) 開(kāi)發(fā)版,體驗(yàn)版和正式版 api.sendReq(req);
需要重點(diǎn)提醒的是,上面appId是前面我們注冊(cè)的移動(dòng)應(yīng)用的appId,而不是小程序的appId。在剛開(kāi)始接入的時(shí)候,就遇到了一個(gè)坑,“bad param”的錯(cuò)誤。如果遇到“bad param”的錯(cuò)誤,那多半是appId的問(wèn)題。
userName則是小程序原始id,可以打開(kāi)小程序,然后查看更多資料進(jìn)行查看,比如:

如果需要回掉結(jié)果,還需要在WXEntryActivity中重寫(xiě)onResp方法。
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
String extraData =launchMiniProResp.extMsg; //對(duì)應(yīng)小程序組件 <button open-type="launchApp"> 中的 app-parameter 屬性
}
}當(dāng)然,為了代碼邏輯的健壯性,還需要在打開(kāi)微信小程序之前,判斷是否安裝了微信客戶(hù)端。
public static boolean isWxAppInstalled(Context context) {
IWXAPI wxApi = WXAPIFactory.createWXAPI(context, null);
wxApi.registerApp(WChatConstants.APP_ID);
boolean bIsWXAppInstalled = false;
bIsWXAppInstalled = wxApi.isWXAppInstalled();
if(!bIsWXAppInstalled){
Toast.makeText(context,"請(qǐng)先安裝微信",Toast.LENGTH_SHORT).show();
}
return bIsWXAppInstalled;
}
總結(jié)
到此這篇關(guān)于Android App跳轉(zhuǎn)微信小程序踩坑的文章就介紹到這了,更多相關(guān)Android App跳轉(zhuǎn)小程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android搭建本地Tomcat服務(wù)器及相關(guān)配置
這篇文章主要介紹了Android搭建本地Tomcat服務(wù)器及相關(guān)配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Android多線程及異步處理問(wèn)題詳細(xì)探討
究其為啥需要多線程的本質(zhì)就是異步處理,直觀一點(diǎn)說(shuō)就是不要讓用戶(hù)感覺(jué)到“很卡”為了提高用戶(hù)體驗(yàn)?zāi)鞘潜仨氁褂玫?/div> 2013-06-06
Android中Webview打開(kāi)網(wǎng)頁(yè)的同時(shí)發(fā)送HTTP頭信息方法
這篇文章主要介紹了Android中Webview打開(kāi)網(wǎng)頁(yè)的同時(shí)發(fā)送HTTP頭信息方法,本文是講解的是一種通過(guò)修改Referer來(lái)控制盜鏈的方法,需要的朋友可以參考下2015-01-01
Android編程使用自定義View實(shí)現(xiàn)水波進(jìn)度效果示例
這篇文章主要介紹了Android編程使用自定義View實(shí)現(xiàn)水波進(jìn)度效果,結(jié)合實(shí)例形式詳細(xì)分析了Android水波動(dòng)畫(huà)效果的具體實(shí)現(xiàn)步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-01-01
Android開(kāi)發(fā)中Dialog半透明背景消失
這篇文章主要介紹了Android開(kāi)發(fā)中Dialog半透明背景消失的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
Flutter給控件實(shí)現(xiàn)鉆石般的微光特效
這篇文章主要給大家介紹了關(guān)于Flutter給控件實(shí)現(xiàn)鉆石般的微光特效的相關(guān)資料,實(shí)現(xiàn)的效果非常不錯(cuò),非常適合大家做開(kāi)發(fā)的時(shí)候參考,需要的朋友可以參考下2021-08-08
Flutter runApp GestureBinding使用介紹
這篇文章主要為大家介紹了Flutter runApp GestureBinding使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12最新評(píng)論

