监听设备位置信息的改变

[!TIP|labelVisibility:hidden|iconVisibility:hidden] navigator.geolocation.watchPosition(successCallback, errorCallback, options)

支持平台:

  • Android
  • iOS

参数说明

参数 类型 必填 说明
successCallback Function 成功回调函数
errorCallback Function 失败回调函数
options Object 参数对象

successCallback函数返回一个对象,该对象包含以下属性:

  • coords( Object ) -- 位置对象,该对象包含以下属性:
    • latitude( Number ) -- 国际标准坐标系( WGS-84) 下的纬度
    • longitude( Number ) -- 国际标准坐标系( WGS-84) 的经度
  • timestamp-- 时间戳,毫秒

errorCallback函数返回一个对象,该对象包含以下属性:

  • code-- 错误代码,其值为以下常量之一:
    • PositionError.PERMISSION_DENIED-- 没有权限
    • PositionError.POSITION_UNAVAILABLE-- 定位服务不能用
    • PositionError.TIMEOUT-- 超时
  • message( String ) -- 相关错误信息

options为参数对象,其属性可包含以下一项或多项:

  • enableHighAccuracy( Boolean / 可选 ) -- 是否启用高精度定位功能,默认false
    • true-- 启用,采用更高经度的方法(比如卫星定位)进行定位
    • false-- 不启用,基于网络监测定位

示例代码

// 引用js
<script src='supconit://hcmobile.js'></script>
<script>
    // 监听’deviceready‘事件
    document.addEventListener('deviceready', onDeviceReady, false)
    function onDeviceReady(){
        // 获取位置信息
        var onSuccess = function(position) {
        alert('Latitude: '+position.coords.latitude+ '\n'+'Longitude: '+position.coords.longitude);
        };
        function onError(error) {
        alert('code: '+error.code+'\n'+'message: '+error.message+'\n');
        }
        var watchID = navigator.geolocation.watchPosition(onSuccess,onError,{enableHighAccuracy:true});
        }
</script>

响应示例代码:

  "latitude": 30.18177928701293
  "longitude": 120.19462411769821

Bug & Tip

  1. tip:当设备位置发生变化时才会触发此事件

  2. tip: 该方法返回String类型的watchId, 可以使用navigator.geolocation.clearWatch方法来停止观察位置变化

results matching ""

    No results matching ""