android - 是否可以实现从网站到 native 应用程序的深度链接?

标签 android ios facebook deep-linking applinks

我的网站上有三个按钮,分别链接到 Facebook、Twitter 和 vk.com 页面。如果用户设备上安装了 native 应用程序,我想打开它。否则,我希望打开 URL 回退。

首先,我尝试直接使用 native 应用程序方案 deep-link.js插入。但是,当我尝试打开 native 应用程序 URL 方案时,当 native 应用程序未安装时,Safari 显示错误,但最终打开了 URL 后备页面。默认的 Android 浏览器说他不知道如何处理这样的 URL 方案:

<a class="btn btn-primary" href="https://www.facebook.com/warpcompany" data-app-ios="fb://profile/838619192839881" data-app-android="fb://page/838619192839881">Facebook</a>

然后我尝试使用应用程序链接“标准”,它有来自 Facebook 的大量推广。我什至尝试使用他们的托管应用程序链接,以确保我以正确的方式生成了所有内容。它不起作用,它总是重定向到网站后备。您可以从 https://fb.me/746134728830806 轻松自行测试

是否可以在网站上提供深层链接,至少在默认操作系统浏览器中可以无错误地打开 native 应用程序,或者静默回退到 URL?

最佳答案

这仍然是可能的,但在较新版本的 Android 默认浏览器上,您必须使用 intents 而不是仅仅尝试打开深层链接。例如,将 fb://page/838619192839881 替换为

intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;end

这将默认回退到 Google play,但您可以通过添加 S.browser_fallback_url 覆盖回退:

intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;S.browser_fallback_url=http%3A%2F%2Fwww.facebook.com%2F;end

回退应该是 url 编码的。

当然,如果用户不使用 Android 手机或使用旧版本的默认浏览器(或奇怪的浏览器),您就会遇到问题。您可以设置一系列条件,并为每种情况用正确的代码替换您的 HTML。

关于android - 是否可以实现从网站到 native 应用程序的深度链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30334889/

相关文章:

java - 如何处理 reSTLet 资源中的过滤

ios - 处理 iOS 7 native 登录弹出窗口中“取消”的选择

iOS 如何通过编码打开电话簿

ios - 在 iOS 中解析不同格式的日期

php - 通过 PHP 保存 base64 编码图像以供 facebook 共享

android - StackView Widget 示例源代码

java - DatabaseReference 的 setValue() 方法是否有一次调用中可以写入的最大子级数?

android - Xamarin Android 应用无法初始化 Facebook SDK

php - Laravel 5.2.31 Socialite 证书 ssl 错误

安卓服务无法启动