如果从同一域打开,深层链接将不起作用

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

我花了几个小时试图让我的深层链接发挥作用。我仍然遇到的唯一问题是,如果从应该由应用程序处理的域打开链接,它将无法工作,但如果从任何其他网站单击链接,它就可以正常工作。

例如: 应打开应用程序的链接:https://example34.com/test。 如果我点击 Github 上的链接,它就会起作用。 如果我打开 https://example34.com/ 然后单击那里的链接,它将在浏览器而不是应用程序中打开它...

我做错了什么?

java android deep-linking applinks
2个回答
1
投票

简短回答:这是预期的行为。

使用Applinks时,Chrome将始终推迟将同一域中的用户引导到网络,而不是深层链接到本机应用程序。打开应用程序的唯一方法是当用户在同一域内路由时触发 URI 方案。我建议使用 Branch 来保证您的链接在所有这些情况下都有效。


-4
投票

我们团队最近也遇到了同样的问题。 正如之前所说,这确实是预期的行为。但有一些方法可以克服它。

最佳解决方案:使用子域进行深层链接 如果用户在浏览器中的同一域中导航,https://app.example.com,则 Chrome 和 Safari 都不允许应用程序拦截请求并打开。 但是,如果用户导航到 https://subdomain.app.example.com 那么这就是域的更改,并且如果链接到该子域,您的应用程序将被打开。

因此,只需在第 5 步中使用新的子域:

https://subdomain.app.example.com

苹果官方文档上也有相关推荐 https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links#Use-universal-links-on-your-site

替代解决方案 1:使用自定义 URI 方案。 例如:

openapp://app.example.com

例如在 AndroidManifest.xml 中订阅它:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />

  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />

  <data
    android:scheme="openapp"
    android:host="app.example.com" />
</intent-filter>
此解决方案的

缺点是,如果您的应用程序未安装,此方法将失败。

如果您想了解更多有关此主题的信息,可以查看我的文章: https://medium.com/@oleg7green/the-specific-case-of-app-links-on-android-ios-apps-47a0455f8892

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