微信小程序如何打開 APP

launchApp(OBJECT)

說明

因爲需要用戶主動觸發才能打開 APP,所以該功能不由 API 來調用,需要用 open-type 的值設置爲 launchApp 的 <button> 組件的點擊來觸發。

當小程序從 APP 分享消息卡片的場景打開(場景值 1036,APP 分享小程序文檔 iOS 參見,Android 參見)或從 APP 打開的場景打開時(場景值 1069),小程序會獲得打開 APP 的能力,此時用戶點擊按鈕可以打開分享該卡片的 APP。即小程序不能打開任意 APP,只能 跳回 分享該小程序卡片的 APP。

在一個小程序的生命週期內,只有在特定條件下,才具有打開 APP 的能力。 打開 APP 的能力 可以理解爲由小程序框架在內部管理的一個狀態,爲 true 則可以打開 APP,爲 false 則不可以打開 APP。

在小程序的生命週期內,這個狀態的初始值爲 false,之後會隨着小程序的每次打開(無論是啓動還是切到前臺)而改變:

  • 當小程序從 1036(App 分享消息卡片) 打開時,該狀態置爲 true。
  • 當小程序從 1069(App 打開小程序) 打開時,該狀態置爲 true。
  • 當小程序從以下場景打開時, 該狀態不變,即保持上一次打開小程序時該狀態的值:
    • 1038(從小程序返回,基礎庫 2.2.4 及以上版本支持)
    • 1089(微信聊天主界面下拉)
    • 1090(長按小程序右上角菜單喚出最近使用歷史)
  • 當小程序從非以上陳列的場景打開時,該狀態置爲 false。

launch-app

使用方法

小程序端

需要將 <button> 組件 open-type 的值設置爲 launchApp。如果需要在打開 APP 時向 APP 傳遞參數,可以設置 app-parameter 爲要傳遞的參數。通過 binderror 可以監聽打開 APP 的錯誤事件。

app 端

APP 需要接入 OpenSDK。

iOS 參考文檔 https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=&lang=zh_CN

Android 參考文檔 https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN

Android 第三方 app 需要處理 ShowMessageFromWX.req 的微信回調,iOS 則需要將 appId 添加到第三方 app 工程所屬的 plist 文件 URL types 字段。 app-parameter 的獲取方法,請參考 Android SDKSample 中 WXEntryActivity 中的 onResp 方法以及 iOS SDKSample 中 WXApiDelegate 中的 onResp 方法。

例子

  <button 
    open-type="launchApp" 
    app-parameter="wechat" 
    binderror="launchAppError">
    打開APP
  </button> 

Page({ 
    launchAppError: function(e) { 
        console.log(e.detail.errMsg) 
    } 
}) 

error 事件參數說明

說明
invalid scene 調用場景不正確,即此時的小程序不具備打開 APP 的能力。

官方文檔地址:
https://developers.weixin.qq.com/miniprogram/dev/api/launchApp.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章