[英]deviceready not firing in cordova
對於我的cordova項目,deviceready沒有正確啟動(至少在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中檢查,我沒有收到任何錯誤
沒有必要在你的www/js/
文件夾中包含cordova.js
因為該文件從index.html
文件的同一級別從另一個位置復制到platforms/ios/platform_www
(即運行: cordova build ios
),所以為了有一個合適的配置,下一個聲明:
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>
必須改為:
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
deviceready
事件對任何應用程序都至關重要。 它表示Cordova的設備API已加載並可以訪問。
更新
所以我通過從正文中刪除onload =“onLoad()”並將其替換為“deviceready”來工作:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
就這樣:
document.addEventListener("deviceready", onDeviceReady, false);
我有同樣的問題,但在我的情況下, cordova.js
已被正確包括在內。
最終對我有用的是一個簡單的remove
和add
ios
平台:
cordova platform remove ios
cordova platform add ios
自從我完全重建了ios
平台並且在那段時間內發生了其他重大變化(Cordova升級,XCode升級等)以來已經有一段時間了。 我的config.xml
或現有的ios
版本可能在某種程度上不符合最新的Cordova要求。
我有同樣的問題,我的解決方案是添加:
<script type="text/javascript" src="cordova.js"></script>
在HTML文件中,一切都很完美
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.