从自定义 cordova 应用程序启动本机应用程序

Posted

技术标签:

【中文标题】从自定义 cordova 应用程序启动本机应用程序【英文标题】:Launch native apps from custom cordova app 【发布时间】:2016-07-21 14:24:57 【问题描述】:

我正在使用 Cordova(在英特尔 XDK 中)开发一个移动应用程序,它是启动其他应用程序的按钮列表。

到目前为止,我已经成功地在浏览器中启动了手机应用程序 (href="tel://")、短信 (href="sms://) 和谷歌网站 (href="http://google.com")。

我找到了一个用于启动应用程序的插件:https://github.com/lampaa/com.lampa.startapp,但根据那里提供的指南,我可以使用这样的代码启动应用程序(示例):

navigator.startApp.start([["app.com.name", "app.com.name.Activity"], ["product_id":"100"]], ...);

但是我怎样才能找到那些完整的应用名称(这些 app.com.name 字符串)?

我需要这些应用程序的名称(或如何打开它们):

视频(android 的默认应用), 图片/相机胶卷(Android 的默认应用), 相机, WiFi 设置, 蓝牙设置, 空白或主页打开的浏览器窗口。

提醒一下:我不想在这些应用和我的应用之间同步任何数据 - 我只想通过我的应用启动它。

如果您有其他解决方案 - 我愿意接受任何建议。

【问题讨论】:

如果您想使用手机上可用的应用程序处理文档,则可以使用插件:github.com/ti8m/DocumentHandler 我正在使用它来处理文档和图片。 【参考方案1】:

视频(Android 的默认应用),

需要安装InAppBrowser 插件。在您的代码中只需调用cordova.InAppBrowser.open('videos://', '_system', 'location=yes');

图片/相机胶卷(Android 的默认应用)和相机

需要Camera 插件。 navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);

设置

看看这个Native Settings插件

打开空白或主页的浏览器窗口。

需要安装InAppBrowser 插件。在您的代码中只需调用 cordova.InAppBrowser.open('http://google.org', '_system', 'location=yes'); 这将打开安装的默认浏览器。

许多应用程序都定义了众所周知的 URL 方案,您可以使用这些方案直接打开应用程序。这是list。无论您使用哪个应用 URL,请确保将其添加到您的白名单 config.xml<allow-intent href="twitter:*" /> <allow-intent href="mailto:*" /> 较新的方法是使用与 URL 相对的通用链接。

【讨论】:

感谢有用的回答,只有videos:// 不起作用-点击后没有任何反应(我已经安装了InAppBrowser btw)

以上是关于从自定义 cordova 应用程序启动本机应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义键盘扩展启动包含应用程序?

为啥我的应用程序在从自定义视图启动 Activity 后关闭?

如何通过 Intent 从自定义 Android 应用程序启动 Lync 客户端?

在本机 IOS 应用程序中加载多个 Cordova 微应用程序

EC2Config 服务是不是应该出现在从自定义创建的 AMI 启动的实例中?

Apache cordova - 如何为 Google Play 或 Itunes 打开本机应用程序?