Cordova罗盘API(navigator.compass.watchHeading)不工作(错误代码3)
Cordova compass API (navigator.compass.watchHeading) not working (error code 3)
我正试图使用cordova指南针运行一个示例应用程序,但每次调用错误回调时都会返回错误代码3。
我使用cordova V4.0,当然我添加了插件org.apache.cordova.device-orientation
<!DOCTYPE html>
<html>
<head>
<title>Compass Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// The watch id references the current `watchHeading`
var gWatchID = null;
// Wait for device API libraries to load
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
function onDeviceReady() {
startWatch();
}
// Start watching the compass
function startWatch() {
// Update compass every 3 seconds
var options = { frequency: 3000 };
if (!gWatchID)
gWatchID = navigator.compass.watchHeading(onSuccess, onError, options);
}
// Stop watching the compass
function stopWatch() {
if (gWatchID) {
navigator.compass.clearWatch(watchID);
gWatchID = null;
}
}
// onSuccess: Get the current heading
function onSuccess(heading) {
var element = document.getElementById('heading');
element.innerHTML = 'Heading: ' + heading.magneticHeading;
}
// onError: Failed to get the heading
function onError(compassError) {
alert('Compass error: ' + compassError.code);
}
</script>
</head>
<body>
<div id="heading">Waiting for heading...</div>
<button onclick="startWatch();">Start Watching</button>
<button onclick="stopWatch();">Stop Watching</button>
</body>
</html>
应用程序已成功构建、部署和启动。但当它启动时,只显示错误代码3。
根据文档,只定义了两个错误代码:CompassError.COMPASS_INTERNAL_ERR=0;CompassError.COMPASS_NOT_SUPPORTED=20;
所以我想知道错误代码3是什么意思?我做错了什么?
谢谢你的回答,Dante
您的设备没有磁传感器,或者供应商没有在操作系统中实现对它的支持。
查看面向设备的插件的Android源代码,启动代码是这样写的(为简洁起见进行了修改):
List<Sensor> list = this.sensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
// If found, then register as listener
if (list != null)
this.setStatus(CompassListener.STARTING);
// If error, then set status to error
else
this.setStatus(CompassListener.ERROR_FAILED_TO_START);
不确定他们为什么在那里编写自己的错误代码(public static int ERROR_FAILED_TO_START = 3
),但实际上他们应该按照文档中的定义报告COMPASS_NOT_SUPPORTED
。
相关文章:
- Don't工作警报代码jQuery
- 咕噜声.js无法读取文件(错误代码:EISDIR)
- 科尔多瓦指南针 API 给出错误代码 3
- Javascript - 错误“未定义不是函数”在以前工作的代码上引发
- dhtmlx多个调度器不工作错误”;调度程序未定义”;
- 如何在使用JavascriptCallbackBehavior时引发带有HTTP错误代码的WebFaultExcepti
- 解析错误代码 121
- Ajax get jsonp给出错误代码500“;请求被阻止”;来自MVC应用程序
- ionic http获取到本地文件会给出http错误代码0
- Imacros/jQuery TypeError:无法访问死对象,第 816 行(错误代码:-991)
- 电话差距/网络数据库错误代码说明
- NaN 错误代码有什么问题
- 异常:“远程主机关闭了连接.错误代码为 0x80070057”
- 咕噜声/巴别塔错误:无法写入“dist”文件(错误代码:EISDIR)
- 科尔多瓦的文件传输写入错误(代码 1)
- 注册服务工作进程返回中止错误代码:20
- Cordova罗盘API(navigator.compass.watchHeading)不工作(错误代码3)
- Ajax POST调用不能正常工作,返回错误代码0,即使url POST成功
- 身份工具箱不工作-错误代码:IDP的错误响应
- 从timeline2.6.1的例子不工作-错误链接是未定义的时间线代码0