根据微信小程序返回给我们的场景值,我们可以根据不同的场景做出不同的处理,更加方便我们对使用场景的划分
当前支持的场景值有:
:发现栏小程序主入口,“最近使用”列表(基础库2..4版本起将包含“我的小程序”列表)
:顶部搜索框的搜索结果页
:发现栏小程序主入口搜索框的搜索结果页
:单人聊天会话中的小程序消息卡片
:群聊会话中的小程序消息卡片
:扫描二维码
:长按图片识别二维码
:手机相册选取二维码
:小程序模版消息
:前往体验版的入口页
:微信钱包
:公众号 profile 页相关小程序列表
:聊天顶部置顶小程序入口
:安卓系统桌面图标
:小程序 profile 页
:扫描一维码
:附近小程序列表
:顶部搜索框搜索结果页“使用过的小程序”列表
:我的卡包
:卡券详情页
:自动化测试下打开小程序
:长按图片识别一维码
:手机相册选取一维码
:微信支付完成页
:公众号自定义菜单
:App 分享消息卡片
:小程序打开小程序
:从另一个小程序返回
:摇电视
:添加好友搜索框的搜索结果页
:公众号模板消息
:带 shareTicket 的小程序消息卡片
:朋友圈广告
:朋友圈广告详情页
:扫描小程序码
:长按图片识别小程序码
:手机相册选取小程序码
:卡券的适用门店列表
:搜一搜的结果页
:顶部搜索框小程序快捷入口
:音乐播放器菜单
:钱包中的银行卡详情页
:公众号文章
:体验版小程序绑定邀请页
:微信连Wi-Fi状态栏
:公众号文章广告
:附近小程序列表广告
:移动应用
:钱包中的银行卡列表页
:二维码收款页面
:客服消息列表下发的小程序消息卡片
:公众号会话下发的小程序消息卡片
:摇周边
:连Wi-Fi成功页
:微信游戏中心
:客服消息下发的文字链
:公众号会话下发的文字链
:朋友圈广告原生页
:微信聊天主界面下拉,“最近使用”栏(基础库2..4版本起将包含“我的小程序”栏)
:长按小程序右上角菜单唤出最近使用历史
:公众号文章商品卡片
:城市服务入口
:小程序广告组件
:聊天记录
:微信支付签约页
:页面内嵌插件
:公众号 profile 页服务预览
可以在 App 的 onLaunch 和 onShow 中获取上述场景值,部分场景值下还可以获取来源应用、公众号或小程序的appId
我们可以在onLaunch, onShow函数中获取到场景值.
onLaunch, onShow 参数
字段 | 类型 | 说明 |
---|---|---|
path | String | 打开小程序的路径 |
query | Object | 打开小程序的query |
scene | Number | 打开小程序的场景值 |
shareTicket | String | |
referrerInfo | Object | 当场景为由从另一个小程序或公众号或App打开时,返回此字段 |
referrerInfo.appId | String | 来源小程序或公众号或App的 appId |
referrerInfo.extraData | Object | 来源小程序传过来的数据,scene=1037或1038时支持 |
这里来做一个简单的场景说明:微信小程序免密签约微信
App({
onShow(res) {
if (res.scene === ) { // 场景值1038:从被打开的小程序返回
const { appId, extraData } = res.referrerInfo
if (appId == 'wxbd687630cd02ce1d') { // appId为wxbd687630cd02ce1d:从签约小程序跳转回来
if (typeof extraData == 'undefined'){
// TODO
// 客户端小程序不确定签约结果,需要向商户侧后台请求确定签约结果
return;
}
if(extraData.return_code == 'SUCCESS'){
// TODO
// 客户端小程序签约成功,需要向商户侧后台请求确认签约结果
var contract_id = extraData.contract_id
return;
} else {
// TODO
// 签约失败
return;
}
}
}
}
})