android - 在 cordova 内打开适用于 ios、android 和 windows 的外部应用程序

标签 android ios cordova android-intent deep-linking

有没有一种方法可以简单地在 cordova 应用程序中打开其他应用程序,如果未安装该应用程序,则在商店中转发。此请求适用于 ios、android 和 windows phone。

我正在谷歌上搜索这个,但在 Intent 、深层链接、url 方案之间并不清楚……而且看起来没有完整的解决方案…… 我该怎么做? 此外,如果我们需要其他应用程序的 urlscheme 或 id,我该如何准确找到它?

问候,

最佳答案

目前,如果没有其他应用程序的合作,没有简单的方法可以做到这一点。

Chrome IntentsCustom URL Schemes 是进行深层链接 的两种不同方法。您可能会遇到的另外两个术语是App Links 和**Universal Links*。

Chrome Intent

在 iOS 和 Android 上的 Google Chrome 中工作。少数其他应用程序(例如 Firefox)也支持这种方法。这是一种习惯——在我看来不必要的复杂——由谷歌的 Chromium 团队制定的方法,基本上在同一个请求中指定应用程序和后备目的地信息。但是它依赖于源应用程序来正确解析它,否则它将失败。换句话说,这不是完整解决方案的好选择。

自定义 URL 方案

以前是深度链接的事实标准。不幸的是,所有美好的事物最终都会结束,Apple 基本上在 iOS 9.2 中扼杀了 URL 方案深度链接。从长远来看,这可能对生态系统有利,因为它解决了很多开始出现方案冲突的问题,但在短期内仍然是应用程序开发人员头疼的问题。没有简单的方法来处理未安装您的应用程序的情况,因为尝试打开未在设备上注册的自定义 URL 方案将导致出现错误页面。 Android 仍然支持 URL 方案。我不太熟悉 Windows Phone 上的深度链接生态系统,因为它太小了,但我相信它也基于自定义 URL 方案。

通用链接和应用链接

本质上是相同的技术:Universal Links 是 iOS 实现,App Links 是 Android 版本。这些通过在您的正常网站 URL 和您的应用程序之间创建经过验证的连接来工作。如果您的应用程序已安装,操作系统将拦截网站请求并打开您的应用程序。这比 URL 方案更容易进行身份验证,因为只有一个人可以控制和验证给定域,并且如果您的应用程序未安装,网站 URL 是自动回退目标。但是,如果您没有相应的网站,这可能是一个很大的限制。这些也不是到处都支持。


要获得全面的方法,您需要处理所有这些标准以及其他几个标准,然后准备好处理大量复杂的边缘情况。 Cordova 应用程序更糟糕,因为您需要在同一应用程序中处理 iOS 和 Android 上的边缘情况。要打开另一个应用程序并在未安装时可靠地回退到应用程序商店,您需要另一个应用程序执行上述所有操作,然后为您提供它们的实现规范——这不是一件容易的事。

Branch.io (完全披露:我显然在团队中)我们将上述所有内容作为免费服务提供,并且实际上促进了 Yummly 和 Instacart 之间的应用程序到应用程序协作。您可以在 this case study 中阅读有关规范的信息.

关于android - 在 cordova 内打开适用于 ios、android 和 windows 的外部应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208254/

相关文章:

android - android phonegap 中的状态栏通知

Android App 开头崩溃 : Database Sqlite

安卓 : How can I use DX option in eclipse?

ios - 在 mapbox View 上显示数千个标签时,有没有办法提高性能?

ios - 警告 ITMS-90737 : "Invalid Document Configuration

ios - 在 for 循环中安排本地通知

javascript - iPad 应用程序上的动量滚动问题

android - 从 android 上的 SQLite 数据库填充 ListView

java - android.widget.LinearLayout 无法转换为 RecyclerView 中的 android.widget.TextView?

cordova - 包括插件 Javascript 文件