【问题标题】:Expo shared link is not clickableExpo共享链接不可点击
【发布时间】:2020-04-10 15:27:46
【问题描述】:

我一直在尝试为我的 Expo 应用程序创建机制,这将允许用户共享应用程序的内容(所以我基​​本上需要与参数链接,我想我知道该怎么做,根据 docs) .

我想通过简单的共享开始创建这种机制,没有参数(只是打开应用程序的可点击链接)。这是我的代码(当用户按下分享按钮时执行):

share = async () => {
  await Share.share({
    message: Linking.makeUrl()
  })
}

它以例外方式共享链接(我在 Messenger 上尝试过),但共享链接不可点击。我还尝试使用exp://192.168.100.3:190000,它指向同一个局域网中的我的PC(我从http://localhost:19002/处理了这个问题),其中metro bundler正在运行,并复制隧道链接——这些都不起作用,链接只是一个纯文本,并且如果用户点击它没有任何反应。但是,当我扫描 QR 码时,来自http://localhost:19002/(metro bundler 页面)的应用程序以例外方式打开。

【问题讨论】:

    标签: react-native expo share


    【解决方案1】:

    你做的一切都很好!

    共享链接在某些应用程序中不可点击的原因仅仅是因为其他应用程序从纯文本中“检测”链接并“链接”它们的机制。

    你看,这些链接实际上是“深层链接”(自定义 URL 方案)。

    这是一个例子。如果我在 Slack 上分享这个链接:exp://192.168.100.3:190000,它就会变成“可点击”,因为看起来 Slack 有一种机制来检测这些导致移动应用程序的自定义“深层链接”:

    如果我通过 Messanger 共享相同的链接,它会将其输出为纯文本。这是因为 Messanger 没有检测这些“深层链接”的机制。

    为了让链接“点击”,它必须呈现在锚标记中。 Messenger 仅链接“已知”网络链接(http://https://...),而不是自定义链接。

    您的二维码阅读器会打开您的深层链接,因为它具有检测“深层链接”的机制。

    因此,如果您想要一种可靠的方法来使您的链接始终“可点击”,那么解决方法是:分拆一个网站。当人们生成(和共享)链接时,他们会共享网络链接https://your-server。当他们打开这些链接时 -> Web 服务器使用 exp://...(或您的自定义)方案重定向它们。如果用户安装了您的应用 - 链接将随您的应用一起打开。

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 2014-01-22
      • 1970-01-01
      • 2012-01-16
      • 2021-08-25
      • 2012-10-06
      • 2015-10-06
      • 2014-01-21
      • 1970-01-01
      相关资源
      最近更新 更多