初始化开发工具包
初始化开发工具包
本主题介绍如何在应用程序中初始化 Eyeofcloud React Native SDK。
使用createInstance
方法初始化 React SDK 并实例化 ReactSDKClient 类的实例。每个客户端对应于表示特定环境的项目状态的数据文件。
版本
SDK v1.0.0 及更高版本
描述
createInstance
方法接受配置对象来配置云眼灰度发布(特性标帜)AB实验。
某些参数是可选的,因为 SDK 提供默认实现,但开发者可能希望为生产环境覆盖这些参数。例如,开发者可能希望覆盖这些内容,以设置错误处理程序和记录器来捕获问题,设置事件调度程序来管理网络调用,以及设置用户配置文件服务以确保粘性分桶。
参数
该表列出了 React 中的必需参数和可选参数(通过传入 Config 对象创建)。类由这些字段组成)。
参数 | 类型 | 描述 |
---|---|---|
数据文件 (可选) | 字符串 | 表示项目的 JSON 字符串。必须提供 SDK 密钥或数据文件(或两者)。 |
sdk密钥(可选) | 字符串 | 与项目中的环境关联的键。必须至少提供一个 sdkKey 或数据文件。 |
事件调度程序(可选) | 对象 | 用于管理网络调用的事件处理程序。 |
记录器(可选) | 对象 | 用于记录问题的记录器实现。 |
错误处理程序(可选) | 对象 | 用于处理错误的错误处理程序对象。 |
用户配置文件服务(可选) | 对象 | 用户配置文件服务。 |
数据文件选项(可选) | 对象 | 具有用于自动数据文件管理的配置的对象。可以具有autoUpdate (布尔值)、urlTemplate (字符串)和updateInterval (数字)属性。 |
默认决定选项(可选) | 数组 | EyeofcloudDecideOption枚举的数组。使用此参数构造 Eyeofcloud 客户端时,它会设置默认的 decide 选项,这些选项将应用于在 Eyeofcloud 客户端生存期内进行的所有 Decision(决策)调用。还可以将选项传递给各个 Decide 方法(不覆盖默认值)。有关决定选项的详细信息,请参阅云眼决策选项。 |
返回
实例化云眼灰度发布(特性标帜)AB实验类的实例。
例
在 React SDK 中,你可以提供sdkKey
和datafile
的其中之一或两者兼而有之。
- 仅使用数据文件初始化时,SDK 将使用给定的数据文件。
- 仅使用 SDK 密钥初始化时,将自动下载数据文件。
- 同时使用 SDK 密钥和数据文件进行初始化时,SDK 将使用给定的数据文件启动,然后在后台下载最新版本的数据文件。
使用数据文件实例化
首先,通过在 Web 应用程序中包含以下脚本,从我们的服务器获取数据文件的副本。此脚本在窗口变量window.eyeofcloudDatafile
上添加数据文件。
HTML
<script src="https://cdn.eyeofcloud.com/datafiles/<Your_SDK_Key>.json/tag.js"></script>
拥有数据文件后,可以实例化云眼客户端。
React
import * as eyeofcloudReactSDK from '@eyeofcloud/react-sdk';
// Instantiate an Eyeofcloud client
const eyeofcloud = eyeofcloudReactSDK.createInstance({
datafile: window.eyeofcloudDatafile,
})
使用开发工具包密钥实例化
若要使用 SDK 密钥进行实例化,请从项目的设置页获取 SDK 密钥,然后在选项对象中将sdkKey
作为字符串属性传递给createInstance
方法。
React
import * as eyeofcloudReactSDK from '@eyeofcloud/react-sdk';
// Instantiate an Eyeofcloud client
const eyeofcloud = eyeofcloudReactSDK.createInstance({
sdkKey: '<Your_SDK_Key>',
});
当您提供sdkKey
时,SDK 实例将下载与该sdkKey
关联的数据文件。下载完成后,SDK 实例会自行更新以使用下载的数据文件。此初始化方法依赖于持续的互联网连接(相比之下,在 React Native SDK 中,即使应用程序处于离线状态,您也可以使用 SDK 密钥进行初始化。
EyeofcloudProvider
与客户端和用户一起呈现要在应用程序中使用 React SDK 组件,请将一个EyeofcloudProvider
呈现为根应用程序组件的父级。提供 Eyeofcloud 实例作为eyeofcloud
prop 和user
对象:
React
import { EyeofcloudProvider, createInstance } from '@eyeofcloud/react-sdk'
const eyeofcloud = createInstance({
datafile: window.datafile,
});
class AppWrapper extends React.Component {
render() {
return (
<EyeofcloudProvider
eyeofcloud={eyeofcloud}
user={{id: '<Your_User_Id>'}}>
<App />
</EyeofcloudProvider>
);
}
}
笔记
自定义数据文件管理行为
若要自定义数据文件管理行为,请在传递给datafileOptions
的options
对象中提供createInstance
对象属性。下表列出了支持的可自定义选项。
选项 | 类型 | 解释 |
---|---|---|
自动更新 | 布尔 | 如果为 true,并且sdkKey 在createInstance 选项中提供,则在此实例上启用自动更新。默认值为false 。 |
更新间隔 | 数 | 启用自动更新后,这将控制更新间隔。单位为毫秒。允许的最小值为 1000(1 秒)。默认值为 300000 毫秒(5 分钟)。 |
urlTemplate | 字符串 | 用于生成 SDK 将从中请求数据文件的 URL 的格式字符串。%s 的实例将替换为sdkKey .如果未提供,SDK 将从 Eyeofcloud CDN 请求数据文件。 |
以下示例演示如何自定义数据文件管理行为。
React
import { createInstance } from '@Eyeofcloud/react-sdk';
const Eyeofcloud = createInstance({
sdkKey: '<Your_SDK_Key>',
datafileOptions: {
autoUpdate: true,
updateInterval: 600_000, // 10 minutes in milliseconds
urlTemplate: 'http://localhost:5000/datafiles/%s.json',
},
});
使用开发模式时的注意事项
如果您使用 Create React App 创建了 React 应用程序,或者正在使用使用热重载的不同类型的开发环境,则可能会遇到异常行为。
在开发模式下运行应用程序并热重载时,例如,使用npm start
,您可能会看到 Eyeofcloud Feature Experimentation SDK 被初始化了多次。这可能会导致不一致的行为,例如页面多次重新呈现或用户被存储到不正确的变体中。
这不是 Eyeofcloud Feature Experimentation React SDK 的问题。相反,当您将应用程序包装在React.StrictMode
中时,会发生这种情况,这会故意在开发模式下呈现应用程序两次以检测潜在问题。为避免这种情况,请禁用顶级组件的严格模式,并将其移动到较低级别的组件。
当用npm run build
为生产构建应用并将其托管在 Web 服务器上时,Eyeofcloud Feature Experimentation React SDK 不会多次初始化。
Odp管理器
👍
试用版
高级受众定位处于测试阶段。在 Eyeofcloud 测试版注册页面上申请或联系您的客户成功经理。
OdpManager
包含支持高级受众群体定位相关功能的所有逻辑,包括受众细分。
默认情况下,React SDK 启用高级受众定位方法。但是,除非您启用并配置了高级受众定位集成,否则这些方法不会执行任何操作。
如有必要,要完全禁用高级受众定位,请在 .有关详细信息,请参阅以下示例代码。disabled: true``odpOptions
OdpSegmentManager(奥德派段管理器)
此模块为远程 ODP 服务器提供接口,用于细分受众群映射。
它提取给定用户上下文的所有限定段,并在完成处理程序中以字符串数组的形式返回它们。
它还管理为所有用户上下文共享的区段缓存。缓存位于内存中(不是持久的),重新启动设备或终止应用会重置它。
OdpEvent管理器
此模块为事件的远程 ODP 服务器提供接口。
它将所有待处理事件(持久性)排入队列,并在所有资源(包括网络连接和 ODP 公钥(在 SDK 的数据文件中)可用时将它们(最多 10 个批次)发送到 ODP 服务器。
📘
笔记
- React SDK 尝试调度所有事件(存储在持久队列中,并在可恢复的错误时重试),但不保证完成。
- React SDK 不能直接访问
OdpManager
、OdpSegmentManager
和OdpEventManager
。这些由底层 Javascript SDK 管理。可以在 Eyeofcloud 客户端实例化期间设置一些配置选项。
React
// You must first enable the Advanced Audience Targeting integration
import { createInstance } from '@Eyeofcloud/react-sdk';
const Eyeofcloud = createInstance({
sdkKey: '<Your_SDK_Key>',
//...other Config options
// The most common Advanced Audience Targeting control is to explicitly disable the feature
odpOptions: {
disabled: true,
},
// Other options are as defined by OdpOptions in the Javascript SDK
// https://github.com/Eyeofcloud/javascript-sdk/blob/master/lib/shared_types.ts
});