@warplink / react-native
深度链接,安装归因,实时分析React Native。处理通用链接和应用链接,解析延迟的深层链接,以及属性安装 WarpLink.
要求
| 要求 | 最低版本 |
|---|---|
| React Native | > = 0.75.0 |
| 反应 | > = 18.0.0 |
| iOS | 15 + |
| 安卓 | API 26+ (Android 8.0) |
| node . js | 18 + |
支持两种React Native架构。新建筑是唯一的 从React Native 0.82开始,这就是今天的新应用。这个 Android bridge在每次检查时都针对该范围的两端进行编译 当前的React Native在每个版本中都会在一个设备上运行。
安装
Bare React Native
npm install @warplink/react-native
iOS SDK通过Swift包管理器发布,并由React Native podspec自动拉入。SPM集成需要动态框架,因此将其添加到您的 ios/Podfile 在你的应用程序 target 布洛克:
use_frameworks! :linkage => :dynamic
然后安装iOS pods:
cd ios && pod install
Android自动链接通过React Native CLI。不需要额外的设置。
世博管理工作流
npx expo install @warplink/react-native
然后生成本地项目:
npx expo prebuild
注意: 这个SDK需要本地模块,并且做了 不 与世博合作。您必须使用开发构建(
npx expo prebuild或EAS Build)。
快速入门
SDK是 选择退出裸露的 configure({ apiKey, onLink }) 电线本身,
热启动,并自动延迟深层链接。所有这三件事都能融入你的生活
onLink 回调。否 useEffect,无需手动订阅。
延迟的检查将在下一次启动时重试。
import { WarpLink } from '@warplink/react-native';
// Call once at app startup, outside any component.
WarpLink.configure({
apiKey: 'wl_live_yoursdkkeyhere000000000000000000',
onLink: ({ deepLink, error }) => {
if (deepLink) {
// Fires for cold start, warm start, AND deferred (first launch).
// Disambiguate deferred installs with deepLink.isDeferred.
navigate(deepLink.deepLinkUrl ?? deepLink.destination);
} else if (error) {
console.error('WarpLink error:', error.code, error.message);
}
},
}).catch((e) => console.error('WarpLink configure failed:', e));
这就是整个快乐之路。 onLink 接收应用程序看到的每个深度链接。
获取SDK密钥
apiKey 以一个 SDK关键,创建于 键 > SDK键 在
仪表板。它预先限定了链接解析和安装属性的作用域。API密钥
是后端脚本、CI和AI代理的单独凭证,而它们不能
安装记录。两者共享 wl_live_ 前缀,所以在这里粘贴API密钥是
一个容易犯的错误:深度链接一直在解析,但没有安装出现在您的
仪表板。看到 集成指南 完整的
预排。
所需的本机主机设置
两个原生钩子是 要求 获取深层链接以获取SDK。它们不是 可选的。
- iOS: 你的
AppDelegate必须将传入的url转发到WarpLinkModule.handleIncomingURL(url),为SDK提供iOS Universal Links。看到 iOS主机钩子。如果 你的应用程序声明UIApplicationSceneManifest并且有一个SceneDelegate(这是普通Xcode模板的默认值,也是苹果应用程序的要求 使用更新的sdk(没有sdk就无法启动),也是一样的 Forward也需要在SceneDelegate: iOS停止调用AppDelegate一旦一个场景存在,就完全挂钩。看到 iOS SceneDelegate钩子. - Android: 你的启动活动必须声明
android:launchMode="singleTask"所以预热启动意图到达SDK。看到 安卓系统设置.
使用自定义链接域
aplnk.to 开箱即用。如果您的链接在您自己的域上,请声明它
SDK会在第一次启动时识别它,在它获取你的
域名列表,甚至没有网络:
WarpLink.configure({
apiKey: 'wl_live_yoursdkkeyhere000000000000000000',
linkDomains: ['links.yourapp.com'],
onLink: handleLink,
});
相同的声明可以存在 Info.plist (WarpLinkDomains)或Android
清单(app.warplink.DOMAINS)。所有的源都被合并,所以声明
在不止一个地方是安全的。看到
自定义链路域.
测试第一次安装
一、 wl_test_ 键将其属性状态与 wl_live_ 状态在同一设备上。在调试构建中使用Test键。要在不删除应用程序的情况下再次测试首次安装,请调用 WarpLink.clearAttribution() 使用测试键。它清除存储在设备上的属性并开始新的检查。它对活键不起任何作用。
使任何部件失效
每个源都是独立禁用的。关掉一个,自己接好线。
WarpLink.configure({
apiKey: 'wl_live_yoursdkkeyhere000000000000000000',
onLink: handleLink,
automaticDeepLinks: false, // you call onDeepLink()/getInitialDeepLink()
automaticDeferredDeepLinks: false, // you call checkDeferredDeepLink()
});
省略 onLink 完全保留手动模式的深度链接。两件事
从1.0.x更改: configure() 不再抛出一个错误的键(它报告)
通过 onLink 而不是控制台警告),以及 AttributionResult.installId
被删除。pre-1.1 API中的其他所有内容都没有改变,仍然受到支持。
延期的支票仍然会触发,
因为这个请求是什么属性的安装;呼叫
checkDeferredDeepLink() 读比赛,还是通过
automaticDeferredDeepLinks: false 关闭复选框:
WarpLink.configure({ apiKey: 'wl_live_yoursdkkeyhere000000000000000000' });
function App() {
useEffect(() => {
const unsubscribe = WarpLink.onDeepLink(({ deepLink }) => {
if (deepLink) navigate(deepLink.destination);
});
WarpLink.getInitialDeepLink().then((l) => l && navigate(l.destination));
WarpLink.checkDeferredDeepLink().then((l) => l?.isDeferred && navigate(l.destination));
return unsubscribe;
}, []);
return <>{/* Your app */}</>;
}
功能
- 默认选择退出: 一个
configure({ apiKey, onLink })调用开启冷启动、热启动和延迟深度链接。每个都是独立的残疾。 - 通用链接和应用程序链接处理: 解析到目的地和自定义参数的传入深层链接。看到 集成指南.
- 延迟深度链接: 即使在App Store或Play Store安装之后,也要引导用户访问特定内容。看到 延迟深度链接.
- 安装归因: 确定性和概率匹配与置信度得分。看到 归因.
- 跨平台的: iOS和Android的单一TypeScript API,带有特定平台的原生桥。
- 不需要ATT: 在iOS上使用IDFV(不受应用跟踪透明度的限制)。没有IDFA,没有用户提示。
- 调试日志: 使与
{ debugLogging: true }在配置选项中跟踪SDK行为。 - 原生SDK版本:
await WarpLink.sdkVersion()返回本机SDK报告的版本。 - 归因完成:
await WarpLink.isAttributionComplete()告诉您此安装的延迟检查是否已确定完成。 - 零依赖关系: 没有第三方运行时依赖项。只依赖于
react和react-native.
文档
| 指南 | 描述 |
|---|---|
| 集成指南 | 从零到工作深度链接的逐步设置 |
| API参考 | 所有公共类型和方法的完整参考 |
| 延迟深度链接 | 延迟深度链接是如何工作的以及如何使用它 |
| 归因 | 安装归因层和信心评分 |
| 错误处理 | 每个错误案例以及推荐的恢复操作 |
| 故障排除 | 常见问题和解决方案 |
| 重火力点迁移 | 从Firebase动态链接迁移到WarpLink |
| 体系结构 | SDK如何与本地iOS和Android SDK连接 |
链接
许可证
麻省理工学院的许可。看到 许可证 获取详细信息。