微信小程序的场景值scene

时间:2024-03-06 08:36:22

根据微信小程序返回给我们的场景值,我们可以根据不同的场景做出不同的处理,更加方便我们对使用场景的划分

当前支持的场景值有:

1001:发现栏小程序主入口,“最近使用”列表(基础库2.2.4版本起将包含“我的小程序”列表)
1005:顶部搜索框的搜索结果页
1006:发现栏小程序主入口搜索框的搜索结果页
1007:单人聊天会话中的小程序消息卡片
1008:群聊会话中的小程序消息卡片
1011:扫描二维码
1012:长按图片识别二维码
1013:手机相册选取二维码
1014:小程序模版消息
1017:前往体验版的入口页
1019:微信钱包
1020:公众号 profile 页相关小程序列表
1022:聊天顶部置顶小程序入口
1023:安卓系统桌面图标
1024:小程序 profile 页
1025:扫描一维码
1026:附近小程序列表
1027:顶部搜索框搜索结果页“使用过的小程序”列表
1028:我的卡包
1029:卡券详情页
1030:自动化测试下打开小程序
1031:长按图片识别一维码
1032:手机相册选取一维码
1034:微信支付完成页
1035:公众号自定义菜单
1036:App 分享消息卡片
1037:小程序打开小程序
1038:从另一个小程序返回
1039:摇电视
1042:添加好友搜索框的搜索结果页
1043:公众号模板消息
1044:带 shareTicket 的小程序消息卡片 
1045:朋友圈广告
1046:朋友圈广告详情页
1047:扫描小程序码
1048:长按图片识别小程序码
1049:手机相册选取小程序码
1052:卡券的适用门店列表
1053:搜一搜的结果页
1054:顶部搜索框小程序快捷入口
1056:音乐播放器菜单
1057:钱包中的银行卡详情页
1058:公众号文章
1059:体验版小程序绑定邀请页
1064:微信连Wi-Fi状态栏
1067:公众号文章广告
1068:附近小程序列表广告
1069:移动应用
1071:钱包中的银行卡列表页
1072:二维码收款页面
1073:客服消息列表下发的小程序消息卡片
1074:公众号会话下发的小程序消息卡片
1077:摇周边
1078:连Wi-Fi成功页
1079:微信游戏中心
1081:客服消息下发的文字链
1082:公众号会话下发的文字链
1084:朋友圈广告原生页
1089:微信聊天主界面下拉,“最近使用”栏(基础库2.2.4版本起将包含“我的小程序”栏)
1090:长按小程序右上角菜单唤出最近使用历史
1091:公众号文章商品卡片
1092:城市服务入口
1095:小程序广告组件
1096:聊天记录
1097:微信支付签约页
1099:页面内嵌插件
1102:公众号 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) { // 场景值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;
                }
            }
        }
    }
})