在App中打開小程序的功能發布有一段時間了,網上關於這個的新聞很多,但是技術資料並不多,我們有項目需要嘗試這種方式,特意試了一下,發現還是有一些坑,分享給大家。
首先微信官方文檔在微信.開放平台上,截圖如下:
一. 開發前先得做好幾個准備工作:
-
在微信開放平台上有賬號而且有通過的移動應用。

2.在微信公眾平台有賬號而且有小程序,最好發布為體驗版本。
3.在微信開放平台把對應的移動應用和小程序建立關聯。這個過程來回需要登陸和掃二維碼n次。
二. 在android和ios調試官方sample打開小程序
注意官方下載的sample配置的證書和bundle id必須和在微信開放平台對應的移動應用使用的一致。
image.png
打開小程序的核心代碼不多,里面有幾個參數必須設置正確
String appId = "wxd930ea5d5a258f4f"; // 填應用AppId IWXAPI api = WXAPIFactory.createWXAPI(context, appId); WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); req.userName = "gh_d43f693ca31f"; // 填小程序原始id req.path = path; //拉起小程序頁面的可帶參路徑,不填默認拉起小程序首頁 req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可選打開 開發版,體驗版和正式版 api.sendReq(req);
上面幾個參數再詳細說一下:
- appId指的是微信開放平台對應移動應用的appId,而不是小程序的appId,這里注意
-
userName是微信公眾平台里小程序的原始Id,是gh開頭的。
image.png - req.path就是打開小程序的路徑,傳遞參數就是通過這個來傳遞,但是文檔上並沒有說,試出來的。
req.path="page/index?key1=xxx&key2=yyy";//類似http的url方法來傳遞參數
*req.miniprogramType選的是開發和體驗版本,正式版本的小程序沒有測試過。
ios和android類似,不再細說。
三. 在小程序端接受App傳遞過來的參數
上面的App打開的path是'path/index',所以需要把App的onLaunch事件定義在page/index.js上
這里的options.scene是1069,這個場景id表示從app打開。
options.query.key1和options.query.key2就是app打開小程序傳遞的參數。
作者:voxer
鏈接:https://www.jianshu.com/p/c08b54299e8a
來源:簡書
