【问题标题】:Embed website in mobile Cordova PhoneGap app; issues on android build在移动 Cordova PhoneGap 应用程序中嵌入网站; android构建的问题
【发布时间】:2015-12-16 06:00:26
【问题描述】:

根据http://docs.phonegap.com/getting-started/1-install-phonegap/desktop/http://docs.phonegap.com/getting-started/1-install-phonegap/desktop/“入门”下的说明,我创建了一个非常基本的 PhoneGap 应用程序

在第 4 步结束时,它解释了如何进行修改:

http://docs.phonegap.com/getting-started/4-run-your-app/desktop/

然后我更进一步,将<div class="app"... 部分替换为这样的 iFrame:

<iframe src="http://www.testing.com" style="width: 100%; height: 100%; border: none;">You need a Frames Capable browser to view this content.</iframe>

当我通过手机上的 PhoneGap 开发者应用对其进行测试时,它看起来不错。

然后我从项目文件夹(我的 phonegap 工作区中具有此项目名称的文件夹)创建了一个 zip,并将其上传到我在 build.phonegap.com 上的帐户

然后,当我下载 android apk 并在 android 上安装和运行时,屏幕如下所示:

http://imgur.com/InGwhjY

所以我现在用这样的 javascript 替换了 iFrame:

<script type="text/javascript">
window.location="http://www.testing.com";
</script>

我还尝试了加载“onload”或“ondeviceready”页面的变体。

我的所有尝试都是一样的:它在我 iPhone 上的 PhoneGap 开发者应用程序中运行良好,但是当我在 android 上尝试相同时,它只是坐在页面上并且什么都不做,并且 phonegap 控制台中没有显示错误, 除了

[code]在 192.168.2.83:3000 上收听 200 /api/appzip[/code]

我还注意到我的 phonegap 应用程序构建器在默认 index.html 中插入了以下行:

<script type="text/javascript" src="cordova.js"></script>

...但没有创建这样的文件。不知道有没有关系?

【问题讨论】:

  • 如果你想在你的应用中使用外部内容或外部文件,你必须将 url 加入白名单。

标签: javascript android cordova jquery-mobile phonegap-build


【解决方案1】:

好的, 你需要重新开始。

1) 您不能将 Phonegap 桌面应用程序 中的框架用于 Phonegap Build 请在此处查看最近的答案:Phonegap issue with Ajax Request

2) 您不能将移动应用程序用作网站包装器,并将其提交到 Google Play 或 Apple iTunes 请参阅#5 底部附近的Top Mistakes by Developers new to Cordova/Phonegap。这违反了苹果的政策。阅读。

3) 您应该在本地加载所有资源(javascript、css、字体等)。这意味着文件应该在设备上,而不是在互联网上。很少有例外。这是移动应用的“最佳实践”。

4) 你可以从onLoad 调用onDeviceReady,但没关系。 deviceready 等待 onload#4Top Mistakes by Developers new to Cordova/Phonegap

5) 正如@joerg 所建议的,您需要了解whitelists。这个 whitelist 工作表应该会有所帮助。 HOW TO apply the Cordova/Phonegap the whitelist system

6) index.html 中的行 &lt;script type="text/javascript" src="cordova.js"&gt;&lt;/script&gt; 应该已经存在。 Phonegap Build 将添加该文件。您需要确保该行已经在您的index.html 中。如果该行不存在,您的代码将不起作用。

NOTE to 6)(添加于 2015-12-22)当您使用 Phonegap Build 时,根据current documentation,您是否使用无所谓cordova.jsphonegap.js。向下滚动到“确保您仍然可以访问 PhoneGap API”

欢迎来到 Cordova/Phonegap。祝你好运

【讨论】:

  • 谢谢!我会经历所有这些事情。当我将其添加到配置中时,该 URL 应该已经被列入白名单 (testing.com" browserOnly="true" subdomains="true" /> ),但会更彻底地浏览您提供的整个列表!
  • @user3682065,您需要重新阅读whitelist 插件的文档。 browserOnly="true" 不再有效。我不确定是否仍然支持 "stay-in-webview"
  • 明白了,谢谢!给我一点时间来完成这一切。
  • 所以关于您的第 6 点:我已经从 github.com/jessemonroy650/Phonegap--Generic-Boilerplate7 下载了您的样板文件 - 您在其中放置了“phonegap.js”而不是“cordova.js”。我还需要添加后者还是仅前者就足够了?
  • 好问题,我会确保在那里发表评论。当您使用 Phonegap Build 时,根据*current* documentation,使用 cordova.jsphonegap.js 无关紧要。向下滚动到“确保您仍然可以访问 PhoneGap API”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多