背景
我正在尝试将基于Cordova 2.0 构建的 iOS 应用程序升级到 2.7 版。
它基本上是一个指向远程搜索引擎的欢迎屏幕(请保留有关应用程序有效性和可能批准的评论,因为我们已经过去了),我们正在使用ChildBrowser插件来启用在子浏览器中打开链接,以免将用户困在 Cordova webview 中。
Cordova 2.7 有一个名为InAppBrowser的功能,我希望使用它来代替 ChildBrowser。InAppBrowser 基本上做同样的事情,除了缺少一个在 Safari 中打开的按钮。
问题
现有应用程序的远程网页包括 Cordova JS(以及用于 ChildBrowser 插件的网页),并且可以正常打开子浏览器中的链接。
从远程网页加载 Cordova JS 时,我的测试 Cordova 2.7 应用程序似乎无法正确加载它。
我尝试在嵌入式起始页和远程起始页上使用完全相同的 HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://mydomain.com/mobile/cordova-2.7.0.js"></script>
</head>
<body>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
alert("Ready!!");
}
</script>
</body>
</html>
为了将其作为嵌入式起始页进行测试,我将这一行放入config.xml
:
<content src="index.html" />
当我运行该应用程序时,我立即得到“准备就绪!” 警报。
将此作为远程起始页面进行测试(我的目标是链接到最终应用程序中的远程页面,我只是将其用作起始页面进行测试。如果我从嵌入式页面链接,结果是相同的。) ,我把这一行放在config.xml
:
<content src="http://mydomain.com/mobile/index.php" />
当我运行该应用程序时,我只是得到空白屏幕并且没有警报。
此外,在cordova-2.7.0.js
L. 6255 中,我更改了
console.log('deviceready has not fired after 5 seconds.');
至
alert('deviceready has not fired after 5 seconds.');
通过该更改,使用远程启动页面运行应用程序会导致空白页面,然后在五秒后,我收到警报“设备就绪在 5 秒后未触发。”。所以这告诉我 Cordova JS 没有正确启动。不用说,我无法让 InAppBrowser 在远程站点的子浏览器中启动链接,但我可以让它在嵌入式起始页上正常工作。
有人对从这里去哪里有任何想法吗?这是一个非常简单的示例,因此我假设这是 Cordova 设置问题或功能更改。我很感激任何想法,谢谢!