【问题标题】:Expo Linking back to App世博链接回应用程序
【发布时间】:2018-10-23 14:49:24
【问题描述】:

我一直在使用 Expo 开发一个 react-native 应用程序,我目前正在尝试实现的功能是在任何平台上与朋友分享一个链接,当他们点击这个链接时,它将启动我的应用程序。

经过广泛的在线研究 - 我遇到了一个阻止程序,遵循 expo's documentation 我为我的应用程序定义了一个方案 - 当我按下共享时,一切正常,一条消息被创建并且我能够共享内容,但只能作为细绳。

我正在使用 react-natives Share 库分享到应用程序,并且我正在使用 Expo 为我提供链接。

理想情况下,我的第一个目标是使用 Expo Link 打开应用程序,然后再进一步探索为链接添加更多功能。

Share.share({
    message: "Click Here to View More! " + Expo.Linking.makeUrl() ,
    url: Expo.Linking.makeUrl(),
    title: 'Sufiyaan has invited you to join this activity',
  })
  .then((result) =>{
    console.log(result)
      if(result === 'dismissedAction'){
        return
      }
  })
  .catch((error) => console.log(error))

在我的应用程序的根目录中,我还定义了事件处理程序:App.js

handleOpenURL(event) {
  if (event.url && event.url.indexOf(scheme + '://') === 0) {
      crossroads.parse(event.url.slice(scheme.length + 3));
  }
}

componentDidMount() {
  let scheme = 'nxet'
  Expo.Linking.getInitialURL()
    .then(url => {
      console.log("App.js getInitialURL Triggered")
      // this.handleOpenURL({ url });
    })
    .catch(error => console.error(error));
  Linking.addEventListener('url', this.handleOpenURL);
}

componentWillUnmount() {
  Linking.removeEventListener('url', this.handleOpenURL);
}

当我分享到 Whatsapp、Facebook Messenger 的链接,甚至只是显示为 myapplink:// 的消息或注释时,我尝试将其输入浏览器,而不是要求我打开我的应用程序 - 它会进行谷歌搜索.

请注意,我正在 Android 设备上尝试此操作。

我做错了什么吗?

非常感谢任何帮助。谢谢。

【问题讨论】:

  • 我在使 Expo.Linking 正常工作时遇到问题,您使用的是哪个版本的 expo?谢谢!
  • 嘿 Greg,我最近将 Expo 升级到 SDK V28.0.0,我决定继续使用 Branch 而不是 Linking,尽管功能与 Linking 应该提供的功能不同 - 它值得探索 - Expo 已对其进行了配置,并且在新版本中 Expo 已对最新版本进行了更新。

标签: javascript react-native deep-linking expo


【解决方案1】:

据此: https://docs.expo.io/versions/v28.0.0/workflow/linking#__next

您需要提供指向您自己网站的链接,然后该链接会重定向到您的应用的 slug:// 链接,以便 gmail 和其他 Android 应用正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-27
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2023-04-07
    • 1970-01-01
    • 2012-04-06
    相关资源
    最近更新 更多