APP可直接打开小程序,lanchAPP的<button>组件如何触发?

  • 回答 (6)
  • 关注 (1)
  • 查看 (2729)

当用户在使用旅行攻略App,会需要订机票、酒店、打车等服务,有时候一个App不能全包括,在用户的的诉求下,微信小程序提供的能力能够串联不同的App实现,那么其中的组件是如何出发的?

小南同学小南同学提问于
拉风拉风回答于

了解组件如何触发的,得了解下API。如下图:

官网截图

launchApp 打开APP,可以通过app-parameter属性设定向APP传参数。

而这些参数是需要用户主动触发才能打开 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>组件的参数,例如:

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

Page({

    launchAppError: function(e) {

        console.log(e.detail.errMsg)

    }

})

深红萌豚回答于

需要将 <button> 组件 open-type 的值设置为 launchApp。如果需要在打开 APP 时向 APP 传递参数,可以设置 app-parameter 为要传递的参数。通过 binderror 可以监听打开 APP 的错误事件。

具体参考微信小程序官网:https://developers.weixin.qq.com/miniprogram/dev/component/button.html

白马希回答于

小程序打开APP,前提是你是从APP内打开小程序,才能返回打开APP,不然是不支持的,也就是说让APP给小程序导流,然后再将流量返回到APP的能力,但是真心期待能够下载APP。

UPYUN回答于

invalid scene,调用场景不正确,即此时的小程序不具备打开 APP 的能力。

迷途小压压回答于

如下是button按钮的属性:

官网截图
官网截图

我们主动触发时,用到了open-type="lanchAPP"

可能回答问题的人

  • Justan

    腾讯 · 高级工程师 (已认证)

    20 粉丝0 提问8 回答
  • 鲁文斌

    腾讯 · 产品经理 (已认证)

    5 粉丝0 提问0 回答
  • JoanLiu

    腾讯 · 产品经理 (已认证)

    18 粉丝0 提问0 回答
  • 腾讯云开发TCB

    腾讯科技有限公司 · 云开发(TCB)团队 (已认证)

    200 粉丝0 提问0 回答
  • Starkwang

    7 粉丝0 提问0 回答
  • iFeng

    腾讯 · 工程师 (已认证)

    4 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券