# init(options: object)
配置接口,用来调整SDK的基础机制。应该在App()
调用之前调用。
首次调用初始化SDK,再次调用覆盖之前传入的配置,可多次调用。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
appid | string | Y | 微信小程序appId |
token | string | Y | 通过接入申请后,有数提供的凭证字符串 |
usePlugin | bool | 是否使用了小程序插件,默认是:false | |
debug | bool | 是否打印日志,默认是:false | |
openSdkShareDepth | bool | 是否打开分享链路记录功能,默认值为false,打开后,将记录用户分享链路A->B->C->D。(老版本参数,建议用autoProxy参数配置) | |
serverUrl | string | 传入自定义的后台上报接口,若传入则token将无意义, 默认是:'https://zhls.qq.com/api/report' | |
trackApp | bool | 是否开启自动跟踪APP的曝光事件(APP相关预置事件,如 APP - onLuanch),默认是:true。(老版本参数,建议用autoProxy参数配置) | |
proxyPage | bool | 是否开启自动代理 Page,默认是:false。SDK 负责上报页面的 browse 、leave、share 等事件可以使用 sr.page 代替 Page(sr.page(options))(老版本参数,建议用autoProxy参数配置) | |
autoStart | bool | 是否开启自动开始上报,默认是:true,open_id 可自动获取,一般在 login 业务之后手动调用 sr.startReport 方法开启上报 | |
autoProxy | bool | object | 是否开启自动代理,从v1.8.6版本开始新增的自动代理配置参数,建议使用该参数 |
require('sr-sdk-wxapp').init({
token: '',
debug: true,
})
App({
onLaunch() { ... }
})
# track(type: string, props: object)
采集指定类型的行为数据并在适当的时候上报,接口会从上下文数据中抽取需要的数据。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
type | string | Y | 事件类型,见“事件类型”中每页第一行英文 |
props | object | Y | 具体的行为数据 |
let app = getApp()
app.sr.track('add_to_cart', {
sku_id: 'product_111',
sku_name: '苹果',
})
# setUser(userInfo: object)
设置用户信息,该数据会填充到上报数据的 wx_user
之中,
接口可多次调用,新的一级属性会直接覆盖旧的属性(浅层覆盖)。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
userInfo | wx_user_relation | 微信用户关联数据,对应公共属性wx_user |
let app = getApp()
App({
onShow(options) {
app.sr.setUser({
open_id: '*13***sdjsdk',
})
}
})
# setChan(chanInfo: object)
设置通用的渠道信息,该数据会填充到上报数据的 chan
之中,
接口可多次调用,新的一级属性会直接覆盖旧的属性(浅层覆盖)。
新版SDK在初始化后自动采集了 chan
相关的信息,一般只在设置自定义渠道的时候调用。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
chan | chan | 渠道数据,对应公共属性chan |
let app = getApp()
App({
onShow(options) {
// ...
// ...getChanInfo
app.sr.setChan({
chan_shop_id,
chan_shop_name,
chan_custom: {
chan_custom_id,
...
},
})
}
})
# setContext(context: object)
由于context 的多层级结构修改容易出错,不再推荐直接使用该方法操作上下文,可以使用 setUser
、setChan
代替。
设置通用的上下文数据内容。上报行为时总是会从上下文数据中抽取需要的数据(例如wx_user和chan)再上报,如此可以简化上报内容。
接口可多次调用,新的一级属性会直接覆盖旧的属性(浅层覆盖)。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
wx_user | wx_user_relation | 微信用户关联数据,对应公共属性wx_user | |
chan | chan | 渠道数据,对应公共属性chan |
let app = getApp()
App({
onShow(options) {
app.sr.setContext({
wx_user: { // 首次添加
user_id: 'aaa'
}
})
/*
context: {
wx_user: {
user_id: 'aaa'
}
}
*/
app.sr.setContext({
wx_user: { // 更新
user_id: 'bbb',
open_id: 'xxx',
},
chan: { // 首次添加
chan_wxapp_scene: options.scene
}
})
/*
context: {
wx_user: {
user_id: 'bbb',
open_id: 'xxx',
},
chan: {
chan_wxapp_scene: options.scene
}
}
*/
}
})
# onQueue(fn: Function<data ⇒ data>)
fn
在数据进入缓存队列时触发。这个函数允许在数据推入缓存队列时对数据做一些改造。
let app = getApp()
App({
onShow(options) {
app.sr.onQueue(data => {
return data // 注意最后一定要返回修改后的数据包
})
}
})
# getInfo()
获取小程序 SDK 状态信息,返回 String。
使用在 webview
内嵌页的小程序之中,可以联通会话状态。
let app = getApp()
// page with webview
Page({
data: {
src: '',
},
onShow(options) {
const host = "http://{siteUrl}/"
this.setData({
src: `${host}?${app.sr.getInfo()}`
})
}
})