1. 微信小程序喚起微信小程序
小程序喚起其他小程序很簡單
先上鏈接
小程序跳轉(zhuǎn)小程序 Navigator組件 推薦使用
?????從今往后開發(fā)者跳轉(zhuǎn)小程序需要將指定跳轉(zhuǎn)小程序的id添加到白名單,具體看文檔中的“使用限制”欄目和下圖

??小程序基礎(chǔ)庫版本要在礎(chǔ)庫 2.0.7 開始支持,低版本需做兼容處理。
??注意:不是任何小程序都可以喚起的,只能打開同一公眾號下關(guān)聯(lián)的小程序
<navigator class='navigatorClass' target="miniProgram" open-type="navigate" app-id="MiniProgram-YourAppID" path="MiniProgram-Path 一般為pages/為首" extra-data="MiniProgram-Parameter 跳轉(zhuǎn)后的微信小程序onLaunch()方法中可以獲取" version="release 要跳轉(zhuǎn)的小程序版本"></navigator>
//navigator組件也可以添加class屬性 可以當(dāng)做一個button來使用 點擊觸發(fā)
//其他沒有用的的參數(shù) 詳見上面的Navigator組件文檔鏈接
2. 移動應(yīng)用App喚起微信小程序
移動應(yīng)用App喚起小程序的方式也不麻煩,但由于當(dāng)時開發(fā)的時候參考的文檔有點模棱兩可,導(dǎo)致調(diào)試了一陣子,這也是寫這篇文章的初衷,避免大家走彎路。
先上鏈接
移動應(yīng)用App喚起微信小程序
具體流程:
- 登陸微信開放平臺
- 管理中心-創(chuàng)建移動應(yīng)用-等待審核通過
- 審核通過后-查看應(yīng)用(拉到最下面)-關(guān)聯(lián)小程序信息-查看關(guān)聯(lián)-關(guān)聯(lián)小程序-小程序賬號持有者通過申請
- 到這一步就可以開始移動開發(fā)了
??這里只介紹iOS SDK接入開發(fā)全流程 原文鏈接
下載導(dǎo)入或是cocoapod接入隨你,原文鏈接里寫的挺清楚,應(yīng)該不會遇到太多問題,這里提幾個容易遺忘和出錯的點
-
URL Schemes設(shè)置 如下圖所示
Identifier直接填寫 weixin
URL Schemes填寫已申請通過的App詳情中的AppId
URL Schemes設(shè)置 -
Info.plist設(shè)置添加
Key-LSApplicationQueriesSchemes如下圖所示
Info.plist設(shè)置 必須在代碼中向微信終端注冊你的id
NSLog(@"注冊微信權(quán)限 ===== %d", [WXApi registerApp:@"AppId"]);
??都設(shè)置成功后,如果想測試一下是否可以使用SDK可以調(diào)用api打開微信試一下,如果能跳轉(zhuǎn)到微信,說明可以繼續(xù)開發(fā)了。
//測試代碼
[WXApi openWXApp];
??在iOS資源Demo中有一個寫好的類WXApiManager可以拿來直接用,方便哦~Demo
由于我們的需求是點擊不同的按鈕跳轉(zhuǎn)到小程序不同的頁面,所以我有寫一個工具類,具體代碼如下:
//外部調(diào)用此方法前先調(diào)用abilityCheck判斷是否可以正常調(diào)起微信小程序
+ (BOOL)openWXMiniProgram:(MiniProgramPathType)path {
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = @"原始ID";
launchMiniProgramReq.path = [WXMiniProgramTool transformPath:path];
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
return [WXApi sendReq:launchMiniProgramReq];
}
//檢查用戶是否安裝微信
//判斷當(dāng)前微信的版本是否支持OpenApi
+ (BOOL)abilityCheck {
if ([WXApi isWXAppInstalled]) {
if ([WXApi isWXAppSupportApi]) {
return YES;
}
return NO;
}
return NO;
}
//外部調(diào)用傳入枚舉值在內(nèi)部轉(zhuǎn)化為具體小程序path
+ (NSString *)transformPath:(MiniProgramPathType)path {
if (path == MiniProgramPathDefault) {
return @"pages/path1/path1";
}
if (path == MiniProgramPathIndex) {
return @"pages/path2/path2";
}
if (path == MiniProgramPathTeach) {
return @"pages/path3/path3";
}
return @"pages/pathDefault/pathDefault";
}
iOS這里有個很坑的地方,文檔中是這樣寫的
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = userName; //拉起的小程序的username
launchMiniProgramReq.path = path; //拉起小程序頁面的可帶參路徑,不填默認(rèn)拉起小程序首頁
launchMiniProgramReq.miniProgramType = miniProgramType; //拉起小程序的類型
return [WXApi sendReq:launchMiniProgramReq];
這個userName并沒有具體說明是什么參數(shù),其實是你小程序配置里的原始ID,登陸小程序微信公眾平臺-設(shè)置-最下面 賬號信息-原始ID
若這個參數(shù)不填或者填錯,該API直接返回NO,不好發(fā)現(xiàn)錯誤原因。
到這一步如果沒有出錯,恭喜你已經(jīng)看到你要跳轉(zhuǎn)的小程序彈出了。如果你們的需求還有從小程序中跳轉(zhuǎn)回移動應(yīng)用App后的操作,參考文檔,這里就不說了。
注意身體,小心禿頂??

