PhoneGap 包装现有网站

Posted

技术标签:

【中文标题】PhoneGap 包装现有网站【英文标题】:PhoneGap wrappimg around an existing WebSite 【发布时间】:2014-03-17 13:03:07 【问题描述】:

环境: 1.安卓4.0.3 2.PhoneGap 2.9.0 3. html5

用例 1. 现有的 WWW 网站 2. PhoneGap 应用程序将其“super.loadUrl”设置为 WWW URL(不是本地 FS) 3. javascript 检测何时作为应用程序运行 4. 扩展的应用程序功能由网站执行,例如。专门的视频捕捉活动使用情况

问题: 当在 PhoneGap 框架中使用 WebSite 时,我尝试加载cordova.js: ( ),不幸的是,这会导致安全异常。 支持上述用例的最佳方法是什么?

【问题讨论】:

如果您遇到特定错误消息的问题或有特定问题,请提供更多信息。 【参考方案1】:

请记住,Cordova/PhoneGap 并不是为了让您将网站变成应用程序而编写的 - 该网站可能看起来和行为都很糟糕。最好使用“移动优先”策略并首先或与网站分开设计您的移动存在。您可能会花费大量精力重新设计和调整您的网站以使用 Cordova,而最好只花精力从头开始构建 Web 应用程序。

如果您坚持按照您描述的方式进行操作(通过更改super.loadURL() 立即加载网站 - 顺便说一句,您不应该更改super.loadURL(),而是更改/res/xml/Config.xml 中的<content src=""> 标签),然后您可能必须升级到最新的 Cordova 才能使用 some fixes,这将帮助您通过网络加载 cordova.js。

【讨论】:

我刚刚尝试了上面所说的,虽然触发 DeviceReady() 很容易,但要正确加载插件代码却有点困难。【参考方案2】:

来自 InAppBrowser 文档:

“注意:InAppBrowser 窗口的行为类似于标准 Web 浏览器,无法访问 Cordova API。”

也许您可以使用 iframe 从本地 html 文档加载您的网站,该文档实际上在本地加载 cordova.js。

如果有帮助,请参阅https://***.com/a/16660136/3429223 以获取参考。

最好的。


编辑:

完全同意 MBillau 的回答。尝试将外部网站加载为 Phonegap/Cordova 应用程序并不是一个正统的用例,这可能会引发一些安全问题。最好的方法是为应用设计特定版本。

【讨论】:

出于安全原因,不推荐使用 iframe 将外部内容直接加载到您的 Cordova 应用程序中:wiki.apache.org/cordova/BugtraqResonseDraft

以上是关于PhoneGap 包装现有网站的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap - 未安装应用程序已安装的同名现有软件包具有冲突的签名

PhoneGap App 在页面加载时加载内部浏览器

在使用 iOS Phonegap 包装的 jQuery Mobile 中找不到具有相关 src 的图像

如何在 iPad PhoneGap 应用程序上编辑现有 PDF(使用 Acrobat pro 创建)

Phonegap - 获取外部网站数据?

Angular工厂中的Phonegap / Cordova功能