【问题标题】:Phonegap compass plugin not workingPhonegap 指南针插件不起作用
【发布时间】:2015-06-04 16:44:05
【问题描述】:

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

【问题讨论】:

  • 试一试:&lt;gap:plugin name="org.apache.cordova.device-orientation" source="plugins.cordova.io" /&gt; 尽管他们不推荐该存储库,因为它将于 2015 年 10 月 EOL。更好的做法是使用 npm:&lt;gap:plugin name="cordova-plugin-device-orientation" source="npm" /&gt;
  • 不幸的是没有帮助!不过还是谢谢。

标签: android cordova phonegap-plugins phonegap-build


【解决方案1】:

@Marty.H,我在这里有工作演示:http://codesnippets.altervista.org/examples/phonegap/demos/PUBLIC.Apps.html 转到页面的下半部分并尝试预构建的应用程序,Phonegap-Compass-Test。如果有效,页面的上半部分有指向 github 的链接,您可以在其中获取源代码。 --杰西

【讨论】:

  • 谢谢!我尝试了您的示例并且它有效,因此我一次交换 1 个文件以尝试找出我的问题所在。在那之后没有用,我终于意识到我需要重新安装而不是仅仅补水。
  • 好的。有些人喜欢分而治之技术。我更喜欢使用已知商品。您刚刚看到了使用已知商品 的好处。由于我的演示程序为您工作,这意味着硬件很好,API 也很好。所以剩下的一切,你很快就找到了。祝你未来的事业好运。
猜你喜欢
  • 2015-03-27
  • 1970-01-01
  • 2012-01-03
  • 2012-07-25
  • 2014-08-21
  • 1970-01-01
  • 2014-01-01
  • 2011-12-21
  • 1970-01-01
相关资源
最近更新 更多