Expo共享链接不可点击

问题描述 投票:0回答:1

我一直在尝试为Expo应用程序创建机制,该机制将允许用户共享应用程序的内容(因此,根据docs,我基本上需要与params链接,并且我认为我知道该怎么做)。

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

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

它共享链接为例外(我在Messenger上尝试过),但是共享链接不可点击。我还尝试使用exp://192.168.100.3:190000指向同一局域网中的PC(我从http://localhost:19002/处理),并在其中运行Metro bundler,并复制Tunnel链接-这些都不起作用,链接只是纯文本,并且如果用户单击它,则不会发生任何事情。但是,当我扫描QR码时,从http://localhost:19002/(地铁捆绑器页面)中的应用程序打开为例外。

react-native expo share
1个回答
0
投票

您所做的一切都很好!

[在某些应用程序中无法单击共享链接的原因仅仅是因为其他应用程序用于从纯文本中“检测”链接并“链接化”它们的机制。

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

这里是一个例子。如果我在Slack上共享此链接:exp://192.168.100.3:190000,它将变为“可点击的”,因为Slack似乎具有一种机制来检测这些自定义的“深层链接”,从而导致了移动应用程序:

slack message

如果我在Messanger上共享相同的链接,它将以纯文本形式输出。这是因为Messanger没有检测这些“深层链接”的机制。

messenger message

为了使链接“单击”,必须将其呈现在锚标记中。 Messenger只会仅链接“已知”的Web链接(http://https:// ...),而不链接自定义的链接。

您所用的QR码阅读器将打开您的深层链接,因为它具有检测“深层链接”的机制。

因此,如果您需要一种使链接始终“可点击”的可靠方法,请采用以下解决方法:剥离网站。人们生成(并共享)链接时,他们共享Web链接https://your-server。当他们打开这些链接-> Web服务器使用exp://...(或您的自定义)方案重定向它们。如果用户安装了您的应用-链接将随您的应用一起打开。

© www.soinside.com 2019 - 2024. All rights reserved.