微信小程序SDK接入指南
前置条件
配置request合法域名:进入微信小程序后台→设置→开发者设置,添加request 合法域名:https://app.linkflowtech.com。
小程序基础库支持:版本不低于2.4。
绑定开放平台:小程序与其他公众号、小程序绑定到同一开放平台(非必须,如无法绑定开放平台,需要重新设计identify逻辑)。
配置环境
引入SDK
配置linkflow-conf.js
exports.token = 'MTE4LWMzZWU2YzI3LTBlNzMtNDJiOS1iThiMzM0NzIxNDU3YQ=='; //小程序绑定到linkflow之后,页面获取的token
exports.appId = 'wxfd45483b0c0609'; // 小程序的 appid
exports.defaultPath = 'pages/index/index'; // 小程序的默认首页, 用于分享时path为空时
exports.apihost = 'https://app.linkflowtech.com';
exports.USE_CUSTOM_ANONYMOUS_ID = true ;
exports.enablePagestayDuration = 1; // 是否记录页面停留时长,1 是,0 否,默认关闭
exports.maxPagestayDuration = 1800; // 设置页面停留时长最大默认值:1800秒
引入js
在app.js文件顶部(其他代码之前)添加如下代码:
var linkflow = require("./utils/linkflow-wechatapp.min.js");
开始开发(埋点)
识别联系人(identify)
作用
实名联系人,标识该用户是谁,带有何种标识、特征等,例如:姓名、性别等。
更新用户属性。
与同一开放平台下其他公众号或者小程序打通:同一开放平台下,小程序用户进入之后,会根据identify中传的weChatInfo查找其他该平台下同一unionId的用户,查到则发生合并。
调用时机
【进入小程序】:用户进入小程序,判断localStorage是否存有用户信息;
——如果有,调用identify;
——如果没有,获取用户信息,再调用identify,并且用户信息存入localStorage。
【更新用户信息】:包括但不限于用户授权、完善用户信息等所有可能获取到用户信息的时候,例如:用户授权手机号、在用户信息页完善个人信息时。
示例代码
var userInfo = {
externalId:
'unionId'
,
//必传。用户唯一标志。默认情况下用户unionId作为此字段的值。
nickName:
'NICKNAME'
,
mobilePhone:
'mobilePhone'
,
avatarUrl:
'AVATARURL'
,
gender:
1
// 1:男 2:女
props:{
// 用户自定义属性
attr1:
'Kk'
,
//attr1自定义字段属性ID
attr2:
'2021-11-01 08:00:12'
//attr2自定义字段属性ID,日期类型格式:"yyyy-MM-dd hh:mm:ss"
},
weChatInfo: {
unionId:
'unionId'
,
//必传。 小程序用户unionId。
}
}
getApp().linkflow.useCustomIdAsAnonymousId(openId)
// 必传,小程序用户openId
// 在 `app.js` 中
this
.linkflow.identify(userInfo, function() {
// success
}, function(){
// fail
})
// 在页面文件 `page.js` 中
var app = getApp()
app.linkflow.useCustomIdAsAnonymousId(openId)
// 必传,小程序用户openId
app.linkflow.identify(userInfo, function() {
// success
}, function(){
// fail
})
发送事件(sendEvent)
前置条件
方法调用
示例代码
方式一(事件编码):
app.linkflow.sendEvent(
{
"event": 'UDE_10DGHSGAG2',
"attr1": '重油污清洁剂',
"attr2": 'ID3976687974636',
"attr3": true,
"attr4": 18,
"attr5": '2000-01-11 12:11:18',
"attr6": 35.28
})
方式二(事件ID)
var app = getApp();
app.linkflow.sendEvent(
{
"alias": 'mini_GMgame_Start_test',//事件ID
"props": {
"start_test": "test0427" //属性ID
}
})
参数说明
字段名 | 属性名称 | 数据类型 | 是否必传 | 备注说明 |
externalId | 外部系统唯一id | 字符串 | √ | 小程序unionId用户 |
nickName | 昵称 | 字符串 | ||
mobilePhone | 手机号 | 字符串 | ||
avatarUrl | 头像 | 字符串 | ||
gender | 性别 | 整数 | 1 男 ; 2 女 | |
birthday | 出生年月 | 日期 | 如:1990-11-01 | |
name | 姓名 | 字符串 | ||
country | 国家 | 字符串 | ||
province | 省 | 字符串 | ||
city | 市 | 字符串 | ||
street | 街道 | 字符串 | ||
props | 自定义属性 | 对象 | ||
weChatInfo | 微信信息 | 对象 | √ | 对象中只传unionId,如无法获取unionId,可不传 |
验证
SDK配置验证
小程序SDK正常初始化之后,用户打开小程序之后,SDK会自动追踪如下事件:
- 启动小程序——首次打开小程序,或者关闭后打开小程序。(关闭小程序的情形包括:小程序崩溃,关闭微信进程)。
- 展示小程序——解除锁屏或重新打开微信,将之前隐藏的小程序重新展示(非页面展示)。
- 隐藏小程序——手机锁屏、小程序页面最小化时、最小化微信、离开小程序页面(看不到小程序了)。
- 打开小程序页面——进入小程序页面。
- 分享小程序页面——通过微信转发或其他形式将小程序页面分享。
可登录linkflow连接云,在主页右侧时间轴查看是否收到这些事件。如正常收到,则SDK配置无问题;否则,可查看
识别联系人
发送事件
wepy、Taro框架
wepy 框架
wepy 框架触发打开小程序页面(onPageShow) 以及分享小程序页面(onPageShare)示例如下:
let app = getApp();
wepy.page({
//打开小程序页面
onShow(options){
app.linkflow.onPageShow(getCurrentPages());
},
//分享小程序页面
onShareAppMessage(options){
app.linkflow.onPageShare('pages/index');
}
})
Taro 框架
Taro 框架触发打开小程序页面(onPageShow) 以及分享小程序页面(onPageShare)示例如下:
//打开小程序页面
Taro.useDidShow(
app.linkflow.onPageShow(getCurrentPages())
)
//分享小程序页面
Taro.useShareAppMessage(
app.linkflow.onPageShare("/pages/index")
)