根據微信的官方文檔,小程序支持打開APP,專門研究了下這個API有什么,官方文檔地址如下
https://mp.weixin.qq.com/debug/wxadoc/dev/component/button.html
launchApp 打開APP,可以通過app-parameter屬性設定向APP傳的參數
我們再看來看launchAPP的參數說明 https://mp.weixin.qq.com/debug/wxadoc/dev/api/launchApp.html
launchApp(OBJECT)
說明
因為需要用戶主動觸發才能打開 APP,所以該功能不由 API 來調用,需要用 open-type
的值設置為 launchApp
的 <button>
組件的點擊來觸發。
當小程序從 APP 分享消息卡片的場景打開時(場景值 1036,APP 分享小程序文檔 iOS 參見,Android 參見),小程序會獲得打開 APP 的能力,此時用戶點擊按鈕可以打開分享該卡片的 APP。即小程序不能打開任意 APP,只能 跳回
分享該小程序卡片的 APP。
在一個小程序的生命周期內,只有在特定條件下,才具有打開 APP 的能力。 打開 APP 的能力
可以理解為由小程序框架在內部管理的一個狀態,為 true 則可以打開 APP,為 false 則不可以打開 APP。
在小程序的生命周期內,這個狀態的初始值為 false,之后會隨着小程序的每次打開(無論是啟動還是切到前台)而改變:
- 當小程序從 1036(App 分享消息卡片) 打開時,該狀態置為 true。
- 當小程序從 1089(微信聊天主界面下拉)或 1090(長按小程序右上角菜單喚出最近使用歷史)的場景打開時,該狀態不變,即保持上一次打開小程序時該狀態的值。
- 當小程序從非 1036/1089/1090 的場景打開,該狀態置為 false。
使用方法
需要將 <button>
組件 open-type
的值設置為 launchApp
。如果需要在打開 APP 時向 APP 傳遞參數,可以設置 app-parameter
為要傳遞的參數。通過 binderror
可以監聽打開 APP 的錯誤事件。
例子
<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打開APP</button>
Page({
launchAppError: function(e) { console.log(e.detail.errMsg) } })
error 事件參數說明
值 | 說明 |
---|---|
invalid scene | 調用場景不正確,即此時的小程序不具備打開 APP 的能力。 |
總結:小程序打開APP,前提是你是從APP內打開小程序,才能返回打開APP,不然是不支持的,也就是說讓APP給小程序導流,然后再將流量返回到APP的能力,但是真心期待能夠下載APP。
芝麻小客服:小程序關注公眾號的小程序客服,支持回復消息,支持自定義圖文消息回復用戶,支持在小程序內打開網址