我正在尝试使用罗盘功能处理我的应用程序但没有成功。从错误来看,我倾向于认为插件没有添加或设备没有准备好。但据我所知,我做了两件事。我正在使用phonegap构建,因此我用来包含它的唯一代码是:
<gap:plugin name="org.apache.cordova.device-orientation" version="0.3.9" />
据我所知,所有这些都是必需的。当我点击我的应用程序的phonegap构建页面中的插件选项卡时,它显示为存在。
watchDirection = null;
//Phonegap is ready
var whenDeviceReady = function(){
console.log("deviceready");
console.log(navigator.compass);
var findMyDirection = function(){
console.log("find my heading fired");
watchDirection = navigator.compass.watchHeading(
//onSuccess
function(heading){
console.log(heading);
var magnetDirection = heading.magneticHeading;
$("#movingCompass").css("transform", "rotate(" + magnetDirection + "deg)");
},
//onError
function(error){
console.log('code: ' + error.code +' message: ' + error.message);
},
//Update Frequency
{ frequency: 1000});
}
findMyDirection();
}
//Wait for phonegap to load
document.addEventListener("deviceready", whenDeviceReady, false);
除罗盘对象外,上述代码按预期工作。 console.log(navigator.compass);
返回undefined
。并且该行有一个错误,其中包含watchDirection = navigator.compass.watchHeading(
Uncaught TypeError: Cannot read property 'watchHeading' of undefined
。
它列在已安装插件的phonegap构建列表中,我已经使用上面发布的相同代码格式进行地理定位。
答案 0 :(得分:1)
@ Marty.H,我在这里有工作演示:http://codesnippets.altervista.org/examples/phonegap/demos/PUBLIC.Apps.html转到页面的下半部分,尝试预先构建的应用程序 Phonegap-Compass-Test 。如果它工作,页面的上半部分有github的链接,你可以在那里获得源代码。 --Jesse