在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接

Posted

技术标签:

【中文标题】在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接【英文标题】:Deferred Deep Linking in iOS using Branch.io in a React Native App 【发布时间】:2020-08-05 17:33:23 【问题描述】:

我们使用 Branch.io 在我们的分支中实现了延迟深度链接。该流程在我们的 android 版本中正常工作,但在 ios 中不正常。单击 iOS 设备中的深层链接时,应用程序已正确安装,但我们的深层链接的延迟内容部分不起作用。 branch validate gem 是绿色的。

相关代码为:

branch.subscribe(async ( error, params, uri ) => 
  if (error) 
    console.error(`Error from Branch: $error`);
    return;
  

  if (params['+non_branch_link']) 
    return;
  

  if (!params['+clicked_branch_link']) 
    return;
  

  const deepLink = params.$deeplink_path;
  if (deepLink) 
    Linking.openURL(deepLink).catch((e) =>  console.log('[Branch Error]', e); );
  
);

【问题讨论】:

【参考方案1】:

用现有的范式永远无法解决这个问题。最后只是在我的 if 块内设置状态,如果设置了状态,则将用户重定向到错误的屏幕上。一定是某种竞争条件。

¯\ (ツ)

【讨论】:

【参考方案2】:

您是否尝试将 initSessionTtl 时间设置为大约 10 秒?

componentDidMount() 
    branch.initSessionTtl = 10000;
    branch.subscribe(( error, params, uri ) => 
        //Handle the deep link here
    );

【讨论】:

以上是关于在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接的主要内容,如果未能解决你的问题,请参考以下文章

react-native中使用Echarts,自己使用WebView封装Echarts经验

如何在 React Native 中创建对角线边框?

创建新的react native 应用程序

CSS 与 React Native

无法在 React Native 应用程序中使用 React.memo

使用 React-Native-Router-Flux 在 React Native 中嵌套场景