我從PhoneGap的文檔該代碼在http://docs.phonegap.com/en/2.9.0/cordova_accelerometer_accelerometer.md.html#Accelerometer爲什麼Phonegap加速度計示例應用程序無法在諾基亞5800上顯示手機加速度計數據?
<!DOCTYPE html>
<html>
<head>
<title>Acceleration Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
<script type="text/javascript" charset="utf-8">
// The watch id references the current `watchAcceleration`
var watchID = null;
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
startWatch();
}
// Start watching the acceleration
//
function startWatch() {
// Update acceleration every 3 seconds
var options = { frequency: 3000 };
watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
}
// Stop watching the acceleration
//
function stopWatch() {
if (watchID) {
navigator.accelerometer.clearWatch(watchID);
watchID = null;
}
}
// onSuccess: Get a snapshot of the current acceleration
//
function onSuccess(acceleration) {
var element = document.getElementById('accelerometer');
element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +
'Acceleration Y: ' + acceleration.y + '<br />' +
'Acceleration Z: ' + acceleration.z + '<br />' +
'Timestamp: ' + acceleration.timestamp + '<br />';
}
// onError: Failed to get the acceleration
//
function onError() {
alert('onError!');
}
</script>
</head>
<body>
<div id="accelerometer">Waiting for accelerometer...</div>
</body>
</html>
我用build.phonegap.com這個代碼,以使一個應用程序,並下載諾基亞5800(塞班)的.wgz
文件。該應用程序已安裝,併成功加載。但它只顯示「Waiting for accelerometer...
」。也就是說,<div>
標籤的內容不會改變。這是爲什麼?
它可以設置爲任何你想要的!最重要的部分是,如果你通過PhoneGap Build編譯(它會爲你注入所有必要的文件),並且只有**離開引用**,你才能刪除文件**。所以,在你的情況下,不是'src =「cordova-x.x.x.js」'會導致這個問題,但事實是,你(可能)有文件'cordova-x.x.x.js'包含在你的項目中。您更改了引用,因此對於編譯器,它將提供與刪除文件相同的結果。 – trejder
我沒有上傳任何'.js'文件到build.phonegap.com。我只上傳了上面的HTML文件。它沒有提前工作,但是當我將'src'設置爲'「cordova.js」'時,它開始工作。一個有趣的觀察是,如果我將'src'設置爲'「phonegap.js」'也是有效的。 – Ankur
似乎PhoneGap Build只能檢測'phonegap.hs'和'cordova.js'引用來注入代碼,但不能引用帶有版本的文件名。有趣的觀察。我相信,他們正在檢查精確給定的文件名,而不是進行一些搜索/替換,以避免超出他們的需要。而且,是的 - PhoneGap/Cordova名稱一起工作,作爲同一個項目的兩個名稱,所以與主要的Javascript文件一起工作。 – trejder