Phonegap罗盘插件无法正常工作

时间:2015-06-04 16:44:06

标签: android cordova phonegap-plugins phonegap-build

我正在尝试使用罗盘功能处理我的应用程序但没有成功。从错误来看,我倾向于认为插件没有添加或设备没有准备好。但据我所知,我做了两件事。我正在使用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构建列表中,我已经使用上面发布的相同代码格式进行地理定位。

1 个答案:

答案 0 :(得分:1)

@ Marty.H,我在这里有工作演示:http://codesnippets.altervista.org/examples/phonegap/demos/PUBLIC.Apps.html转到页面的下半部分,尝试预先构建的应用程序 Phonegap-Compass-Test 。如果它工作,页面的上半部分有github的链接,你可以在那里获得源代码。 --Jesse