FeatBit 客户端- Side SDK 用于反应原生
导言
这是特性管理平台的回放原生 SDK 费特比特。 。 。 .
要注意,这是客户端SDK,它打算用于单用户上下文,可以是移动,桌面或嵌入式应用程序. 这个SDK被设计用于React Industrial项目.
React 本地 SDK 是基于 React 客户端 SDK
React Introduct SDK基于FeatBit的React客户端SDK(后者依赖于JavaScript客户端SDK)提供更好的集成,用于React Introduct应用. 因此,许多React客户端SDK和JavaScript SDK功能也可供React Natural SDK使用.
开始
安装
npm install @featbit/react-native-sdk
先决条件
在使用SDK之前,需要获得环境秘密和SDK URL.
遵循以下文档获取这些值
快速启动
以下代码显示:
- 初始化 SDK
- 用用户 Flags 钩子评估旗帜
// src/TestComponent.tsx
import React from 'react';
import {Text, View} from 'react-native';
import {Colors} from 'react-native/Libraries/NewAppScreen';
import {useFlags} from '@featbit/react-client-sdk';
export default function TestCompoment({isDarkMode}: {isDarkMode: boolean}) {
const {robot} = useFlags();
return (
<View
style={[
{
marginTop: 32,
paddingHorizontal: 24,
},
]}>
{robot === 'AlphaGo' && (
<Text
style={[
{
color: isDarkMode ? Colors.white : Colors.black,
textAlign: 'center',
fontSize: 30,
fontWeight: '700',
},
]}>
AlphaGo 🤖
</Text>
)}
</View>
);
}
// App.tsx
import React from 'react';
import {
SafeAreaView,
useColorScheme
} from 'react-native';
import type { PropsWithChildren } from 'react';
import {buildConfig, withFbProvider} from '@featbit/react-native-sdk';
import TestCompoment from './src/TestComponent.tsx';
function App(): React.JSX.Element {
const isDarkMode = useColorScheme() === 'dark';
const backgroundStyle = {
backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
};
return (
<SafeAreaView style={backgroundStyle}>
<TestCompoment isDarkMode={isDarkMode} />
</SafeAreaView>
)
}
const options = {
user: {
name: 'the user name',
keyId: 'fb-demo-user-key',
customizedProperties: []
},
sdkKey: 'YOUR ENVIRONMENT SECRET',
streamingUri: 'THE STREAMING URL',
eventsUrl: 'THE EVENTS URL'
};
export default withFbProvider(buildConfig({options}))(App);
实例
SDK 软件
React 本地 SDK 依赖于 React 客户端 SDK, 请参考 反应客户端 SDK 更多信息. 反应客户端SDK与反应原生SDK的主要区别在于SDK的初始化方式.
初始化 SDK
安装依赖后,初始化反应SDK. 你可以通过两种方式之一做到这一点:
- 使用
asyncWithFbProvider函数 - 使用
withFbProvider函数
在使用上述两种方法之前,需要创建 IOption 对象,请确定您已呼叫 buildConfig 函数与 IOption 对象作为参数.
function App(): React.JSX.Element {
// The App component code ...
}
const options = {
user: {
name: 'the user name',
keyId: 'fb-demo-user-key',
customizedProperties: []
},
sdkKey: 'YOUR ENVIRONMENT SECRET',
streamingUri: 'THE STREAMING URL',
eventsUrl: 'THE EVENTS URL'
};
// This line is needed to initialize the SDK
const config = buildConfig({options});
export default withFbProvider(config)(App);
生命周期认识流
使用流线时( W)dataSyncMode: 'streaming'),SDK是生命周期意识出盒子. A 类
WebSocket无法从iOS背景悬浮或Android doze中幸存,而OS可能永远无法交付一个
干净 close,所以一个天真客户端 不停地拨打一个死套接字 并重新盲目连接在简历。 改为:
避免此操作, SDK 会在应用程序背景化或下线后不久即放弃连接
当连接返回时,在前景上重新建立它——立即进行再同步.
这是由React Industrial的驱动 AppState 自动启用; 没有任何线
起来 短暂中断( iOS 应用程序切换器、 瞬间网络 blips) 被解禁, 以免被解禁
切断连接 如果应用程序从来就没有背景,也从未报告网络的变化,那么行为就是
和一直连接的一样.
网络丢失检测是可选的. 如果您也安装
@react-native-community/netinfo, (中文(简体) ),
该流额外暂停网络丢失, 恢复重新连接; 没有它, AppState
单靠自己就能推动行为.
npm install @react-native-community/netinfo