@ 点击term/ react- native- sdk
反应原生 SDK 用于 点击时间 点击包装协议 。 它通过将原生的iOS和Android Clickterm SDKs包装为博览会模块——不需要自定义的原生桥来在"赤裸回放"和"博览会"应用程序中呈现出原生的点击包对话框.
所需资源
- 原生反应
0.75+或 曝光 SDK52+ - iOS系统
15.0+ - 机器人
minSdk 24
安装
npm install @clickterm/react-native-sdk
iOS系统
安装 CocoaPods 依赖关系( bare React End) :
cd ios && pod install
展览项目在期间自动取取模块 npx expo prebuild 或EAS Build. (英语). 在此步骤下为您下载本地的iOS框架——不需要手动设置.
机器人
本地的依赖性由马文中央自动解决. 博览 预建也启用了Android API 24所需的核心图书馆解析器 和25通过软件包的配置插件.
对于一个不运行配置插件的赤裸回放本地应用程序,请添加
跟随应用模块 android/app/build.gradle数字 :
android {
compileOptions {
coreLibraryDesugaringEnabled true
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
}
博览配置插件
在您的应用程序中添加软件包 plugins 阵列, 因此 Expo CLI 和 EAS Build 包含在预建过程中 :
// app.json
{
"expo": {
"plugins": ["@clickterm/react-native-sdk"]
}
}
使用量
import * as Clickterm from '@clickterm/react-native-sdk';
await Clickterm.initialize('YOUR_APP_ID');
const signature = await Clickterm.show({
clickwrapTemplateId: 'tmpl_abc',
endUserId: 'user_42',
templatePlaceholders: {
fullName: 'Ada Lovelace',
company: 'Analytical Engines Ltd',
customPlaceholders: { customerName: 'Ada' },
},
language: 'en-US',
});
const bundleSignature = await Clickterm.showBundle({
clickwrapBundleId: 'bundle_abc',
endUserId: 'user_42',
templatePlaceholdersByTemplateId: {
tmpl_abc: {
fullName: 'Ada Lovelace',
company: 'Analytical Engines Ltd',
},
},
language: 'en-US',
});
const accepted = await Clickterm.showAcceptedContent({
clickwrapTemplateId: 'tmpl_abc',
endUserId: 'user_42',
});
API 密码
| 函数 | 回返 | 说明 |
|---|---|---|
initialize(appId, environment?) | Promise<void> | 配置 SDK . environment 实值 'production' (违约)或 'development' 看到了吗 平台差异。 。 。 . |
show(request) | Promise<string | null> | 显示点击窗口对话框 。 决定与签名字符串,或 null 如果用户已经对协议采取行动. |
showBundle(request) | Promise<string | null> | 呈现一个捆绑的对话框 。 以捆绑的签名决定,或 null 当每个项目都被接受时. |
showAcceptedContent(request) | Promise<ClickwrapTemplateContent> | 重新显示先前接受的协议并用其存储的内容解决. |
请求形状( 装有包的完整类型脚本定义船):
ClickwrapTemplateRequest—— 说{ clickwrapTemplateId, endUserId, templatePlaceholders?, language }ClickwrapBundleRequest—— 说{ clickwrapBundleId, endUserId, templatePlaceholdersByTemplateId?, language? }ClickwrapAcceptedAgreementRequest—— 说{ clickwrapTemplateId, endUserId }
showBundle() 当本地对话框在装入或提交错误后提供重试时, 将待决 。 它解决流量成功或捆绑已被接受时,拒绝用户取消或流量以终端出错结束时.
错误
所有方法都用 Error 谁 code 属性为:
| 代码 | 含义 |
|---|---|
ERR_CLICKTERM_NOT_INITIALIZED | initialize() 并非首先被称作. |
ERR_CLICKTERM_INVALID_ARGUMENT | 一个必要的论据是缺失或畸形. |
ERR_CLICKTERM_NETWORK | 请求无法到达服务器 . |
ERR_CLICKTERM_HTTP | 服务器以错误状态响应 . |
ERR_CLICKTERM_DECODING | 无法解析服务器响应 . |
ERR_CLICKTERM_USER_CANCELLED | 用户解除了对话框 . |
ERR_CLICKTERM_NO_PRESENTER | iOS:没有可供显示的视图控制器 . |
ERR_CLICKTERM_NO_ACTIVITY | 安卓:没有前景活动. |
ERR_CLICKTERM_UNKNOWN | 发生了出乎意料的错误 . |
许可证
麻省理工学院
文件收发者
通过可选 ddRecipient (单位:千美元)email选项 fullName)带有模板或捆绑请求.
这与文件占位符不同。 一个捆绑对整个传送邮件使用一个收件人.
启用 ClickTerm 中的协议电子邮件发送 。 丢失或无效的电子邮件地址产生跳过交付;
占位符电子邮件从未被用作倒计时。 电子邮件支持最多254个字符和完整 名称最多为100个.
const ddRecipient = { email: '[email protected]', fullName: 'Alice Example' };
await show({ clickwrapTemplateId: 'template', endUserId: 'user', ddRecipient });
await showBundle({ clickwrapBundleId: 'bundle', endUserId: 'user', ddRecipient });
核查使用随请求而提供的接收方;核查不能添加、替换或清除.
不发送 ddRecipient 在验证。 校验属于您的后端; React 原生 SDK 永远不会
发送后端证书或呼叫验证 .
反应原生包装目前并不暴露被推迟的身份或激活. 它的接收者是供应的
只使用普通模板或捆绑请求.