# init(options: object)

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

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


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

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 之中,

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


新版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)


由于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()}`
    })
  }
})