初始化开发工具包
初始化开发工具包
本文介绍如何在应用中初始化云眼特性标帜(Feature Flag)AB实验Harmony SDK。
使用createInstance
方法初始化开发工具包,并实例化公开API方法 (如启用功能)的Eyeofcloud客户端类的实例。每个客户端对应于表示特定环境的项目状态的数据文件
描述
createInstance
方法接受配置对象来配置云眼特性标帜(Feature Flag)AB实验。
某些参数是可选的,因为SDK提供默认实现,但开发者可能希望为生产环境覆盖这些参数。例如,开发者可能希望覆盖这些内容以设置错误处理程序来捕获问题,设置事件调度程序来管理网络调用,
以及设置用户配置文件服务以确保黏性分桶
参数
下表列出了配置对象的必需属性和可选属性:
参数 | 类型 | 描述 |
---|---|---|
数据文件 (可选) | 字符串 | 表示项目的JSON字符串。必须至少提供一个sdkKey或数据文件。 |
sdk秘钥 (可选) | 字符串 | 与项目中的环境关联的键。必须至少提供一个sdkKey或数据文件。 |
应用上下文 (可选) | 对象 | 与应用中持久化存储相关的对象。 |
返回
实例化云眼特性标帜(Feature Flag)AB实验类的实例。
例子
在节点SDK中,可以提供sdkKey
和datafile
其中之一或两者兼而有之。
- 仅使用 SDK 密钥初始化时,SDK 将定期在后台轮询数据文件更改。
- 仅使用数据文件初始化时,SDK 不会在后台轮询数据文件更改。
- 同时使用 SDK 密钥和数据文件进行初始化时,SDK 将使用给定的数据文件,并在后台开始轮询数据文件更改。
使用开发工具包密钥实例化
在 Harmony SDK 中,只需传递 SDK 键值即可实例化客户端。每当实验配置发生更改时,SDK 都会为你处理更改。
sdkKey
作为字符串属性包含在传递给createInstance
方法的选项对象中。
import { createInstance } from "eyeofcloud/src/packages/eyeofcloud-sdk/lib/index.node"
const eyeofcloudClient = createInstance({
sdkKey: '12345', // Provide the sdkKey of your desired environment here
});
当您提供sdkKey
时,SDK 实例将下载与该sdkKey
关联的数据文件。下载完成后,SDK 实例会自行更新以使用下载的数据文件。可以使用onReady
方法等待数据文件下载,然后再使用实例。
import { createInstance } from "eyeofcloud/src/packages/eyeofcloud-sdk/lib/index.node"
const eyeofcloudClient = createInstance({
sdkKey: '12345', // Provide the sdkKey of your desired environment here
});
eyeofcloudClient.onReady().then(() => {
// eyeofcloudClient is ready to use, with datafile downloaded from the
// Eyeofcloud CDN
});
使用数据文件实例化
要使用数据文件进行实例化,首先必须从我们的服务器获取数据文件的副本。在下面的示例中,我们演示了使用请求-承诺库获取数据文件。
// Minimal client
import {createInstance} from "eyeofcloud/src/packages/eyeofcloud-sdk/lib/index.node"
import http from '@ohos.net.http';
// replace <Your_SDK_Key>
//若在ets文件中使用,此内容放置于一个方法内部,方法前添加async关键词
const DATAFILE_URL = "https://cdn.eyeofcloud.com/datafiles/<Your_SDK_Key>.json";
let datafile = ""
const httpRequest = http.createHttp();
let request = httpRequest.request(
DATAFILE_URL,
{
method: http.RequestMethod.GET,
expectDataType: http.HttpDataType.STRING,
header: {'Content-Type' : 'application/json'}
}
)
await request.then((data) => {
datafile = data.result as string
})
console.log("Datafile:", datafile);
const eyeofcloudClient = createInstance({ datafile: datafile });
// Use eyeofcloudClient to run experiments
如果不传入 SDK 密钥,云眼客户端将不会自动同步较新版本的数据文件。每次检索更新的数据文件时,只需重新实例化同一客户端即可。
对于简单的应用程序,实例化客户端所需提供的只是一个数据文件,该文件指定给定环境的项目配置。
实例化时开启持久化存储
context
作为字符串属性包含在传递给createInstance
方法的选项对象中。
import { createInstance } from "eyeofcloud/src/packages/eyeofcloud-sdk/lib/index.node"
const eyeofcloudClientInstance = createInstance({
sdkKey: '12345', // Provide the sdkKey of your desired environment here
context: '<YOUR_CONTEXT>'
});