对于我的cordova项目,设备已经无法正常启动(至少在iOS中)。我已经搜索了几个小时但仍无法解决这个问题。我做错了什么吗? js / cordova.js的路径也存在:
<html>
<head>
<title>Geolocation</title>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi, user-scalable=no" />
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/app.css">
<script type="text/javascript">
// Fastclick
if ('addEventListener' in document) {
document.addEventListener('DOMContentLoaded', function() {
FastClick.attach(document.body);
}, false);
}
</script>
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
alert("ready");
// Now safe to use device APIs
}
</script>
</head>
<body onload="onLoad()">
我不确定我错过了什么,因为如果我在Chrome中检查,我没有收到任何错误
答案 0 :(得分:9)
您的cordova.js
文件夹中无需www/js/
,因为该文件已从其他位置复制到platforms/ios/platform_www
(即运行:cordova build ios
)与index.html
文件处于同一级别,因此为了获得正确的配置,下一个语句:
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>
必须更改为:
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
答案 1 :(得分:9)
deviceready
事件对任何应用程序都至关重要。它表示Cordova的设备API已加载并准备好访问。
<强>更新强>
所以我通过从正文中删除onload =“onLoad()”并替换它来“workready”工作:
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP(0), CURRENT_TIMESTAMP(1), CURRENT_TIMESTAMP(2);
只有这个:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
答案 2 :(得分:4)
我遇到了同样的问题,但在我的情况下cordova.js
已被正确包含在内。
最终对我有用的是remove
平台的简单add
和ios
:
cordova platform remove ios
cordova platform add ios
自从我完全重建ios
平台以来,已经有一段时间了,并且在此期间发生了其他重大变化(Cordova升级,XCode升级等)。我的config.xml
或现有ios
版本可能不符合最新的Cordova要求。
答案 3 :(得分:1)
我遇到了同样的问题,我的解决方法是添加:
<script type="text/javascript" src="cordova.js"></script>
在HTML文件中,一切运行正常