微信小程序弹窗集成
集成神策分析 SDK
在使用弹窗 SDK 之前,请确保已经集成了神策分析微信小程序 SDK,版本需要在 v1.13.25 及以上。详细集成步骤请参照 微信小程序 SDK 埋点集成使用帮助文档。
集成神策弹窗 SDK
- 从 GitHub 获取神策弹窗微信小程序 SDK popup.cmd.js 和微信小程序自定义组件 popup-component;
- 在小程序项目引入神策弹窗微信小程序 SDK popup.cmd.js 和微信小程序自定义组件 popup-component
let sa = require('./sensorsdata.min.js');
// 引入小程序弹窗微信小程序 SDK
let popups = require('./popup.cmd.js');
初始化 SDK
首先您需要初始化神策分析 SDK,具体可参考:微信小程序 SDK 埋点集成使用帮助文档。
神策分析 SDK 初始化完成之后,再初始化神策弹窗 SDK。参考代码如下:// app.js
let popups = require('./popup.cmd.js');
let sa = require('./sensorsdata.min.js');
// 设置神策分析 SDK 初始化参数
sa.setPara({
server_url: 'https://jssdkdata.debugbox.sensorsdata.cn/sa?project=xubo',
autoTrack:{
mpClick: true
}
});
// 注册神策弹窗 SDK 并配置初始化参数
sa.usePlugin(popups, {
// 是否打印 log 日志
show_log: true,
// SFO 地址,由 SF 后端提供,sfo 在线服务地址
api_base_url: 'https://apimapping.debugbox.sensorsdata.cn/debugbox/sf21-test-sfo/8202/api/v2',
app_id: '小程序的 appid',
/**
* 设置弹窗生命周期回调函数,若未定义就不对指定事件做处理
*/
popup_listener: {
/**
* 对弹窗点击事件,绑定事件处理函数
* @param {string} plan_id 计划ID
* @param {object} valueObj 弹窗内容对象(在 sf 中配置的弹窗内容)
*/
onClick: function(plan_id, valueObj) {
console.log('plan_id: ', plan_id, ' valueObj: ', valueObj);
},
/**
* 弹窗加载成功时,绑定的事件处理函数
* @param {string} plan_id 计划ID
*/
onLoadSuccess: function(plan_id) {
console.log('加载弹窗成功: ', plan_id);
},
/**
* 弹窗加载失败时,绑定的事件处理函数
* @param {string} plan_id 计划ID
* @param {string} code 错误码
* @param {string} message 错误信息
*/
onLoadFailed: function(plan_id, code, message) {
console.log('计划: ', plan_id, ' code: ', code, ' meaage: ', message);
}
},
});
// 神策分析 SDK 完成初始化
sa.init();
注意事项
由于微信小程序对所有的 https 请求做域名校验,故需要在 小程序管理平台 配置域名白名单,需配置的域名如下: - 神策数据接收地址域名
- 神策推荐平台域名(一般神策分析域名和神策推荐是同一个域名,故只配置一个)
- 神策图片资源域名:https://sf-static.sensorsdata.cn
初始化参数 app_id 相关注意事项: - 配置的小程序的 app_id 需要在神策智能运营平台完成授权
- 可以在微信公众平台——开发管理——开发设置中获取小程序的 app_id
* |
实现弹窗回调
在使用 sa.usePlugin 注册弹窗时,可以通过该函数第二个参数的 popup_listener 属性来设置对弹窗的回调监听。popup_listener 对象包含了 3 个回调函数。设置弹窗按钮点击回调
当用户点击弹窗上的按钮、图片或遮罩时,SDK 会触发 onClick 回调方法。/**
* 对弹窗点击事件,绑定事件处理函数
* @param {string} plan_id 计划ID
* @param {object} valueObj 弹窗内容对象(在 sf 中配置的弹窗内容)
*/
onClick: function(plan_id, valueObj) {
console.log('plan_id: ', plan_id, ' valueObj: ', valueObj);
}
设置弹窗加载成功回调
在弹窗加载成功时,SDK 会调用 onLoadSuccess 回调方法。/**
* 弹窗加载成功时,绑定的事件处理函数
* @param {string} plan_id 计划ID
*/
onLoadSuccess: function(plan_id) {
console.log('加载弹窗成功: ', plan_id);
},
设置弹窗加载失败回调
在弹窗加载失败时,SDK 会调用 onLoadFailed 回调方法。
/**
* 对弹窗点击事件,绑定事件处理函数
* @param {string} plan_id 计划ID
* @param {object} valueObj 弹窗内容对象(在 sf 中配置的弹窗内容)
*/
onClick: function(plan_id, valueObj) {
console.log('plan_id: ', plan_id, ' valueObj: ', valueObj);
}
目前弹窗内容对象中返回的按钮点击类型即:valueObj.type 值有:关闭弹窗、打开链接、复制文本、自定义链接、跳转当前小程序、跳转其他小程序。对应关系如下:序号
类型
弹窗响应
value
1
关闭弹窗
点击后弹窗关闭
close
2
打开链接
点击后弹窗关闭
openlink
3
复制文本
点击后弹窗不关闭
copy
4
自定义链接
点击后弹窗关闭
customize
5
跳转当前小程序
点击后弹窗关闭,打开当前小程序指定路径
navigateTo
6
跳转其他小程序
点击后弹窗关闭,打开其他小程序指定路径
navigateToMiniProgram
引入弹窗组件
在小程序项目的所有需要渲染弹窗的页面中引入弹窗组件。例如在 index 页面引入:// index.json
{
"usingComponents": {
"popup-component": "popup-component/popup-component" // 注意组件所在路径
}
}
// index.wxml
<popup-component id="sensors_popup"></popup-component> // 把此组件放在 index.wxml 的页面的任意位置
弹窗调试
创建运营计划并测试弹窗
在神策智能运营中创建运营计划,并在配置好触达配置后,在右侧的 "测试弹窗" 按钮中打开二维码。二维码位置:「神策智能运营」——「创建计划」——「触达配置」——「完成触达配置」——「测试弹窗」
扫描二维码
点击「测试弹窗」打开二维码,微信扫码二维码,跳转微信小程序查看弹窗效果。
测试弹窗效果
微信扫描二维码后,查看弹窗后的关闭弹窗、点击按钮等效果与创建的运营计划是否一致。