我正在尝试将基于Cordova 2.0 构建的iOS应用程序升级到2.7版.
它基本上是一个欢迎屏幕,指向一个远程搜索引擎(请保留关于应用程序有效性和可能的批准的评论,因为我们已经过去),我们使用ChildBrowser插件在子浏览器中启用打开链接,以便不将用户捕获在Cordova webview中.
Cordova 2.7有一个名为InAppBrowser的功能我希望使用而不是ChildBrowser.除了缺少在Safari中打开的按钮之外,InAppBrowser基本上做同样的事情.
现有应用程序的远程网页包括Cordova JS(以及ChildBrowser插件的网页),它可以在子浏览器中打开链接.
我的测试Cordova 2.7应用程序在从远程网页加载时似乎没有正确加载Cordova JS.
我尝试在嵌入式启动页面和远程启动页面上使用这个完全相同的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>
Run Code Online (Sandbox Code Playgroud)
要将此测试作为嵌入式起始页面,我将此行放入config.xml:
<content src="index.html" />
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我立即得到"准备好了!" 警报.
要将其作为远程启动页面进行测试(我的目标是链接到最终应用程序中的远程页面,我只是将其用作测试的起始页面.如果我从嵌入页面链接,结果是相同的.) ,我把这一行放入config.xml:
<content src="http://mydomain.com/mobile/index.php" />
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我只是得到空白屏幕而没有警报.
此外,在cordova-2.7.0.jsL. 6255中,我改变了
console.log('deviceready has not fired after 5 seconds.');
Run Code Online (Sandbox Code Playgroud)
至
alert('deviceready has not fired after 5 seconds.'); …Run Code Online (Sandbox Code Playgroud)