菜单

快应用 SDK

一、简介

应用的文案或者运营策略更新经常需要通过发版解决,为了减少开发者频繁更新应用版本,热力引擎推出在线参数功能,通过在线参数可以随时远程调整应用中的参数值实现应用内容更新。

在线参数SDK插件使用时,依赖快应用SDK。

二、集成前的准备工作

在正式开始数据接入之前,需要提前准备一些接入过程中需要的参数、准备在线参数SDK插件包,下面说明如何获取这些信息。

1.获取 userCode 和 Appkey

详见快应用 SDK 集成文档。

2.获取在线参数SDK插件

点击以下链接下载在线参数SDK插件包。(提供umd和es两种格式包)

https://sdk.solar-engine.com/quickappabtest/SolarEngine-quickappabtest-SDK-1.3.0.zip

三、SDK 集成

1.SDK初始化

由于在线参数SDK属于热力引擎SDK的一个插件,所以在线参数SDK的初始化是依赖于热力引擎SDK的。开发者可以通过热力引擎SDK的配置方法来控制是否启用在线参数SDK并使用在线参数SDK的相关功能。

SDK以umd方式构建,支持多种加载方式。下面列出常用加载方式:

如果是ES Modules的开发环境,请引入es格式文件,否则请引入umd格式文件。

import SESDK from './quickapp-cn-sesdk-umd.js'
import quickappabtestPlugin from './sesdk-quickappabtest-plugin-umd.js';

// 如果打包环境强制使用ES Modules方式,请引入es格式文件。  
// import SESDK from './quickapp-cn-sesdk-es.js';  
// import quickappabtestPlugin from './sesdk-quickappabtest-plugin-es.js';  

// 某些平台可能仅支持commonjs方式引入,则需要使用require方式引入  
// const SESDK = require('./quickapp-cn-sesdk-umd.js');  
// const quickappabtestPlugin = require('./sesdk-quickappabtest-plugin-umd.js');

// 加载在线参数SDK插件
SESDK.use(quickappabtestPlugin);
// 预初始化  
SESDK.prevInit(appKey);
// 初始化SDK
SESDK.init(initParams);


initParams参数说明:

参数类型是否必填说明
userIdstring账户的 userCode
appKeystring应用的 appKey
configConfig初始化相关的配置信息


初始化配置Config参数说明:

参数类型是否必填说明
remoteConfigRemoteConfig在线参数配置
debugModelboolean是否开启调试,默认false不开启


在线参数配置RemoteConfig说明:

参数类型是否必填说明
enableboolean是否初始化在线参数SDK,默认为false
mergeTypenumber(0|1)服务端跟SDK配置合并策略0-使用服务端配置跟用户本地已有缓存配置合并,默认。1-使用服务端配置跟用户默认配置合并
customIDPropertiesobject自定义ID,跟用户在后台设置的使用自定义ID匹配对应;属性格式要求见快应用 SDK下自定义属性要求。
customIDEventPropertiesobject自定义ID事件属性值,跟用户在后台设置的使用自定义ID事件属性值匹配对应; 属性格式要求见快应用 SDK下自定义属性要求。
customIDUserPropertiesobject自定义ID用户属性值,跟用户在后台设置的使用自定义ID用户属性值匹配对应;; 属性格式要求见快应用 SDK下自定义属性要求。
pollingIntervalnumber轮询间隔时间(单位:分),区间:30分钟-24小时,默认30分钟。
requestTimeoutnumber请求配置接口的超时时间(单位:毫秒), 默认60*1000毫秒

调用示例:

SESDK.init({
  appKey: '666666',
  userId: '888888',
  config: {
    debugModel: true,
    remoteConfig: {
      pollingInterval: 30,
      enable: true,
      mergeType: 1,
      customIDProperties: { a: 1 },
      customIDEventProperties: { e: 1 },
      customIDUserProperties: { u: 1 },
      requestTimeout:5000
    },
  },
});

注:开发者使用在线参数SDK需要通过API预置一份默认配置配置到App中,SDK使用该默认配置用来兜底,具体配置方法参考下方设置默认配置方法。

2.设置默认配置

在线参数SDK需要开发者预置一份默认配置到用户app中,方便在线参数SDK使用此默认配置进行兜底操作。

注意:需要在插件注册之后(SESDK.use),SDK初始化之前(SESDK.init)设置

方法示例:

SESDK.setRemoteDefaultConfig(defaultConfig)

参数相关:


参数名称参数含义参数类型是否必传
defaultConfig开发者传入的默认配置Array<object>

defaultConfig示例:

// defaultConfig 默认配置,一个参数配置为一个对象,格式如下:
SESDK.setRemoteDefaultConfig([
   {
          name : "k1", // 配置项的名称,对应fastFetchRemoteConfig接口的参数 key
          type : 1, // 配置项的类型 1 string、2 number、3 boolean、4 json
          value : "v1", // 配置项的值
   }
]);   

3.设置自定义事件属性

开发者可以为事件设置自定义属性(属性格式要求见 快应用 SDK 下自定义属性要求),在线参数SDK在请求服务端配置时会带上该属性,用于服务端参数匹配。

方法示例:

SESDK.setRemoteConfigEventProperties(properties)

注意:需要在插件注册之后(SESDK.use),SDK初始化之前(SESDK.init)设置

参数相关:


参数名称参数含义参数类型是否必传
properties事件自定义属性object

调用示例code:

SESDK.setRemoteConfigEventProperties({
  k1: v1,
  k2: v2
});  

4.设置自定义用户属性

开发者可以为用户设置自定义属性(属性格式要求见 快应用 SDK 下自定义属性要求),在线参数SDK在请求服务端配置时会带上该属性,用于服务端参数匹配。

方法示例:

SESDK.setRemoteConfigUserProperties(properties)

注意:需要在插件注册之后(SESDK.use),SDK初始化之前(SESDK.init)设置

参数相关:


参数名称参数含义参数类型是否必传
properties用户自定义属性object

调用示例code:

SESDK.setRemoteConfigUserProperties({
  k1: v1,
  k2: v2
});

5.获取在线参数配置

在线参数SDK获取在线参数配置分为两种情况,一种是同步获取方法,通过此方法开发者可以获取返回结果。另一种是异步获取方法,返回结果需要等待回调完成才可以获取。

注:通过同步或异步方式获取参数时,sdk 会触发上报用户命中试验的事件,所以获取参数的时机应该在用户到达试验场景时读取(获取参数代表用户到达试验场景,用户命中该参数对应的试验),请勿提前读取参数

5.1 同步获取在线参数配置

方法示例:

SESDK.fastFetchRemoteConfig(key);

注:必须在SDK初始化之后才可获取,可调用SESDK.ready方法判断SDK是否完成初始化。

参数相关:


参数名称参数含义参数类型是否必传
key在线参数key,跟用户在后台配置参数key对应string

返回值类型: id

调用示例code:

SESDK.ready(function(){
  const v = SESDK.fastFetchRemoteConfig("k1");
  // 取值之后的操作
})
5.2 异步获取在线参数配置

方法示例:

SESDK.asyncFetchRemoteConfig(key); //返回Promise

参数相关:


参数名称参数含义参数类型是否必传
key在线参数key,跟用户在后台配置参数key对应string

调用示例code:

SESDK.asyncFetchRemoteConfig("k1").then(function(value){
  // 取值后的操作
})

————————————

SDK 更新记录

2025-03-14 1.3.0

• 跟随主SDK版本对齐


2025-03-13 1.2.9

• 跟随主SDK版本对齐


2025-02-13 1.2.8

• 跟随主SDK版本对齐


2025-01-03 1.2.7

• 跟随主SDK版本对齐


2024-12-10 1.2.4

• 跟随主SDK版本对齐


2024-11-29 1.2.3

• 跟随主SDK版本对齐


2024-11-11 1.2.2

• 跟随主SDK版本对齐


2024-10-31 1.2.1

•增加sdk内部日志上报


2024-08-14 1.1.9

• 跟随主SDK版本对齐


2024-05-22 1.1.8

• 跟随主SDK版本对齐


2024-04-22 1.1.7

• 跟随主SDK版本对齐

2024-04-16 1.1.6

  • 在线参数SDK初版
  • 支持在线参数功能
  • 支持AB测试功能


最近修改: 2025-03-17Powered by