跳到主要内容

action使用说明


init(options: object)

配置接口,用来调整SDK的基础机制。应该在App()调用之前调用。

首次调用初始化SDK,再次调用覆盖之前传入的配置,可多次调用。


名称类型必填描述
appidstringY微信小程序appId
tokenstringY通过接入申请后,有数提供的凭证字符串
usePluginbool是否使用了小程序插件,默认是:false
debugbool是否打印日志,默认是:false
openSdkShareDepthbool是否打开分享链路记录功能,默认值为false,打开后,将记录用户分享链路A->B->C->D
serverUrlstring传入自定义的后台上报接口,若传入则token将无意义, 默认是:'https://zhls.qq.com/api/report'
trackAppbool是否开启自动跟踪APP的曝光事件(APP相关预置事件,如 APP - onLuanch),默认是:true
proxyPagebool是否开启自动代理 Page,默认是:false。SDK 负责上报页面的 browse 、leave、share 等事件可以使用 sr.page 代替 Page(sr.page(options))
autoStartbool是否开启自动开始上报,默认是:true,open_id 可自动获取,一般在 login 业务之后手动调用 sr.startReport 方法开启上报

require('sr-sdk-wxapp').init({
token: '',
debug: true,
})

App({
onLaunch() { ... }
})




track(type: string, props: object)

采集指定类型的行为数据并在适当的时候上报,接口会从上下文数据中抽取需要的数据。


名称类型必填描述
typestringY事件类型,见“事件类型”中每页第一行英文
propsobjectY具体的行为数据

let app = getApp()
app.sr.track('add_to_cart', {
sku_id: 'product_111',
sku_name: '苹果',
})




setUser(userInfo: object)

设置用户信息,该数据会填充到上报数据的 wx_user 之中,

接口可多次调用,新的一级属性会直接覆盖旧的属性(浅层覆盖)。


名称类型必填描述
userInfowx_user_relation微信用户关联数据,对应公共属性wx_user

let app = getApp()

App({
onShow(options) {
app.sr.setUser({
open_id: '*13***sdjsdk',
})
}
})




setChan(chanInfo: object)

设置通用的渠道信息,该数据会填充到上报数据的 chan 之中,

接口可多次调用,新的一级属性会直接覆盖旧的属性(浅层覆盖)。


::: tips

新版SDK在初始化后自动采集了 chan 相关的信息,一般只在设置自定义渠道的时候调用。

:::


名称类型必填描述
chanchan渠道数据,对应公共属性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)


::: info

由于 context 的多层级结构修改容易出错,不再推荐直接使用该方法操作上下文,可以使用 setUsersetChan 代替。

:::


设置通用的上下文数据内容。上报行为时总是会从上下文数据中抽取需要的数据(例如wx_user和chan)再上报,如此可以简化上报内容。

接口可多次调用,新的一级属性会直接覆盖旧的属性(浅层覆盖)。



名称类型必填描述
wx_userwx_user_relation微信用户关联数据,对应公共属性wx_user
chanchan渠道数据,对应公共属性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()}`
})
}
})