我现在已经追了几个小时了。应用程序在模拟器中工作正常,但在设备上失败。我已经在这个应用程序上工作了几个星期,主要使用模拟器进行调试。我等待设备就绪事件,然后运行以下命令:
function onDeviceReady() {
setStylesheet();
console.log("Device ready");
try {
startup();
} catch (err) { console.log(err);}
}
startup
和setStylesheet
函数分别通过以下脚本标记包含在内。
<script type="text/javascript" src="js/screens.js"></script>
<script type="text/javascript" src="js/stylesheets.js"></script>
setStylesheet
函数已触发,CSS已应用于该应用。启动功能不是。我在XCode控制台中收到以下消息:
2012-05-27 13:29:34.543 app[417:307] [INFO] {"message":
"Can't find variable: startup", "line":59, "sourceId":3807368,
"sourceURL":"file:///var/mobile/Applications/hash/app.app/www/index.html",
"expressionBeginOffset":1141, "expressionCaretOffset":1148, "expressionEndOffset":1148}
在模拟器中运行,一切运行正常。在iPhone上,抛出该错误。我linted screens.js,只有警告。造成这种情况的可能原因是什么?
编辑:一位朋友建议这可能是竞争条件问题。我尝试动态添加screens.js脚本标记并使用tag.onload
来调用该函数。但这似乎并不是这样,因为我仍然遇到同样的问题。 <{1}}也被转换为在onload被触发后被调用,它仍然有效。