今天微信小程序新增了支持跳转App的功能,算是一次比较大的突破,我也第一时间体验了一下该功能,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。
使用方法
iOS
下载最新的微信SDK,或使用CocoaPods更新。
分享微信小程序:
- 第一个字段WebpageUrl为备用链接,兼容低版本的微信客户端
- userName为小程序的原始id,可以在小程序中查看
- path为小程序中页面路径
- Description为描述,等同于小程序中onShareAppMessage方法中的title
- ThumbImage和hdImageData为分享图片的信息,需要小于128k,因此在分享前需要先下载要分享的图片,并压缩,最后resize到500*400(小程序卡片图片要求比例是5比4)
- withShareTicked为YES时,是否带shareTicket,可以通过wx.getShareInfo方法获取群对当前小程序的唯一ID(OpenGid)
- miniProgramType表示小程序类型,0是正式版,1是开发版,2是体验版