【问题标题】:React Native Deep Link Event Listener Not firingReact Native Deep Link 事件侦听器未触发
【发布时间】:2018-01-10 13:44:07
【问题描述】:
  componentDidMount() {
    Linking.addEventListener('url', event => 
    this.handleOpenURL(event.url));
    Linking.getInitialURL().then(url => {
     console.log('url===',url);
     if(url)
      this.handleOpenURL(url);
   });
  }

如果应用程序已经打开并且我尝试更改深层链接 Url,则永远不会调用handleOpenUrl。如果应用程序尚未打开,则它会打开应用程序并获取 URL。

【问题讨论】:

    标签: react-native react-native-ios react-native-linking


    【解决方案1】:

    实际上是 FBSDK 覆盖该方法的问题。

    这个解决方案对我有用。 https://github.com/react-navigation/react-navigation/issues/798#issuecomment-290363058

    【讨论】:

    • 嗯,好的。如果其他人需要,我仍然将解释的答案保留为生命周期(除非它被否决:/)
    • 如果我是你,我会删除它。因为我知道 didmount 被调用一次,但它应该注册事件并且事件应该触发!
    • 您能否直接将答案中的代码与整个sn-p一起提供? @帕万
    • 代码在 github 问题链接中。这是客观的 C 代码,我不明白,所以我没有复制。我只是放了一个链接
    • @Pavan 真的谢谢!!我一直在寻找很长时间才能弄清楚为什么它不能仅在 IOS 上工作。 FBSDK 是问题!!
    【解决方案2】:

    我在处理独立的 Expo 项目时遇到了这个问题,因为我已将建议的代码从 https://facebook.github.io/react-native/docs/linking.html 添加到 *AppDelegate.m,但 Expo 已经为处理 URL 事件提供了稍微不同的函数。从 React Native 文档中删除代码使它对我有用。

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 1970-01-01
      • 2020-09-06
      • 2020-08-26
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      相关资源
      最近更新 更多