微信小程序喚起其他微信小程序 / 移動應(yīng)用App喚起小程序(2018.11.9 更新)

1. 微信小程序喚起微信小程序

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

白名單配置預(yù)覽 key=navigateToMiniProgramAppIdList

??小程序基礎(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喚起微信小程序

具體流程:
  1. 登陸微信開放平臺
  2. 管理中心-創(chuàng)建移動應(yīng)用-等待審核通過
  3. 審核通過后-查看應(yīng)用(拉到最下面)-關(guān)聯(lián)小程序信息-查看關(guān)聯(lián)-關(guān)聯(lián)小程序-小程序賬號持有者通過申請
  4. 到這一步就可以開始移動開發(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后的操作,參考文檔,這里就不說了。


注意身體,小心禿頂??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載鏈接 注:本文轉(zhuǎn)載知乎上的回答 作者:初雪 鏈接:https://www.zhihu.com/question...
    pengshuangta閱讀 29,279評論 9 295
  • 正在閱讀一本十年以前購買的書,感覺好像似曾讀過,但又很陌生。有一句話是這樣說的,學(xué)到好的知識而不去應(yīng)用,就像裝在袋...
    健康就是幸福閱讀 124評論 0 0
  • 今天的行程是去中國超市。巴黎的兩大中國超市都在十三區(qū)。我們感覺只去中超有些無聊,就打算先逛逛周圍的景點,之后再去買...
    Shun1993閱讀 262評論 3 1
  • 完成底層十字 R'D'R或FDF'完成底層一角 重復(fù)完成底層 URU'R'U'F'UF(順時針)或U'F'UFUR...
    獨步天涯1031閱讀 167評論 0 1
  • 今天梳理了近期自己提高執(zhí)行力的踐行方法,有了點心得。 反思總結(jié)一共有精選、剛需、培養(yǎng)、改進、養(yǎng)成、總結(jié) 六...
    暖暖的大樹閱讀 429評論 1 4

友情鏈接更多精彩內(nèi)容