在 Cordova 中检查是不是在 iOS 或 Android 上注册了 URL 方案

Posted

技术标签:

【中文标题】在 Cordova 中检查是不是在 iOS 或 Android 上注册了 URL 方案【英文标题】:Check if a URL scheme is registered on iOS or Android in Cordova在 Cordova 中检查是否在 iOS 或 Android 上注册了 URL 方案 【发布时间】:2014-05-20 14:48:36 【问题描述】:

我想检查一个特定的应用程序是否已安装,如果已安装,请调用它。

AFAIK,方法是检查应用程序的自定义 url 方案是否已注册并使用该 url 启动应用程序。

我有办法在我的 Cordova 应用程序中执行此操作吗?

具体来说,我想检查一下 Google 地图应用程序是否安装在 ios 上,如果是,请使用其自定义 url 启动它,否则显示默认的 Apple 地图。

此网址:https://developers.google.com/maps/documentation/ios/urlscheme:显示了如何在 Objective-C 中执行此操作,但如何在我的 Cordova 应用程序中使用 javascript 执行此操作?

我找不到任何插件来实现相同的功能。关于 SO 的其他问题涉及从本机应用程序或常规网站(在浏览器中)上的 JS 执行此操作。最常见的解决方法是尝试启动并使用超时来查看应用程序启动是否失败并且我的应用程序仍在运行。这是很不干净的。最好通过JS访问iOS APIcanOpenURL

提示?

【问题讨论】:

我不知道 Cordova,但你能做一个调用原生 iOS 方法的扩展吗? @meaning-matters 技术上是的。这就是 Cordova 插件。我不精通 Objective-C 或 android 开发。所以我想看看 Cordova 平台本身是否有这个功能,或者是否有一个现有的插件可以做到这一点。 【参考方案1】:

Cordova 不附带此功能。不过,有一个为 iOS 实现它的插件。

https://github.com/philbot5000/CanOpen

我还没有找到任何适用于 Android 的东西,但我认为这在原生 Android 代码中并不难做到。即使您不精通 Objective-C 或 Java 并且从不打算编写完全原生的应用程序,如果您想使用 Cordova 构建应用程序,您也应该学习一些基础知识。

小而简单的插件真的很容易做。阅读文档并查看一些简单插件的代码,看看它是如何完成的。比如上面的源代码或者下面的源代码真的很简单明了:

https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin

【讨论】:

以上是关于在 Cordova 中检查是不是在 iOS 或 Android 上注册了 URL 方案的主要内容,如果未能解决你的问题,请参考以下文章

Cordova/Phonegap / iOS:错误:找不到插件“Plugin01”,或者不是 CDVP 插件。检查 config.xml 中的插件映射

cordova ios升级插件

Cordova IOS 8.1如何在打开应用程序时检查网络连接[关闭]

Ajax 请求通过浏览器工作,而不是通过 iOS 或 Android 模拟器中的 Cordova 应用程序

iOS 10 上的 Cordova 媒体插件是不是仍可使用后台播放?

ios cordova,无法在共享菜单中添加应用程序