如何在外部网页中使用cordova api

时间:2015-08-17 07:19:14

标签: android ios cordova

我使用cordova创建了一个基于iOS平台和Android平台的移动应用程序。我想将其内容设置为外部网站页面,因此我不需要更新每个移动设备,只是为了更新服务器上的页面。

首先,我将外部页面设置为cordova起始页面:loadUrl("http://www.mywebsite.com/index.html")。该应用程序可以运行,但使用cordova API失败。

然后我使用本地网页作为起始页面,添加外部Web链接以导航到外部页面。该应用仍然无法使用cordova API。

我尝试使用cordova inappbrowser插件,但我注意到它有一条评论:The InAppBrowser window behaves like a standard web browser, and can't access Cordova APIs. For this reason, the InAppBrowser is recommended if you need to load third-party (untrusted) content, instead of loading that into the main Cordova webview. The InAppBrowser is not subject to the whitelist, nor is opening links in the system browser.

我发现一些应用程序具有外部网页使用设备摄像头或录制声音的功能,就像cordova一样,但我不确定它是否使用了cordova或它自己的框架。

有没有办法在外部网页中使用Cordova API?

3 个答案:

答案 0 :(得分:2)

你的config xml中有以下几行吗?

<content src="[YOUR URL]"/>
   <access origin="*" />
   <plugin name="cordova-plugin-whitelist" spec="1" />
   <allow-navigation href="*" />
   <allow-intent href="http://*/*" />
   <allow-intent href="https://*/*" />

答案 1 :(得分:0)

您可以为浏览器构建Cordova应用程序

cordova platforms add browser
cordova build browser

这是为浏览器构建Corodova应用程序的标准方法。

答案 2 :(得分:0)

我认为通过Cordova提供的inApp浏览器,您可能无法使用Cordova API,其他应用程序可能正在做的是通过在JavaScript和Native Side之间创建接口。在android的情况下,它的限制稍微少一些,因为它是在IOS的情况下(例如,访问文件系统)。无论如何,我认为可能对你有帮助的是看看这个项目Crosswalk

使用Cordova 4.0,您可以按照说明中的说明插入Crosswalk Webview,并且无论是否使用Cordova,您都应该能够使用本机API。

希望这有助于。