获取设备当前位置信息

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

支持平台:

  • Android
  • iOS

参数说明

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

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

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

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

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

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

  • enableHighAccuracy( Boolean / 可选) -- 是否启用高精度定位功能,默认false
    • true-- 启用,采用更高精度的方法(比如卫星定位)进行定位
    • false-- 不启用,基于网络监测定位
  • timeout( Number / 可选) -- 超时时间,单位毫秒。默认为infinity

示例代码

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

    }
</script>

响应示例代码:

        "latitude": 30.18177928701293
        "longitude": 120.19462411769821

Bug & Tip

1.tip:timeout enableHighAccuracy的控制逻辑在相关的 js 代码里, 当时间超过timeout时, 即使移动端设备定位成功,也不会触发successCallback

2.tip: iOS 端maximumAge的控制逻辑在相关的 js 代码里

results matching ""

    No results matching ""