地理位置

接口声明

  1. { "name": "system.geolocation" }

导入模块

  1. import geolocation from '@system.geolocation' const geolocation = require('@system.geolocation')

接口定义

geolocation.getLocation(OBJECT)

获取地理位置

权限要求

精确设备定位

参数:

参数名类型必填说明
timeoutLong设置超时时间,单位是 ms,默认值为 30000。在权限被系统拒绝或者定位设置不当的情况下,有可能永远不能返回结果,因而需要设置超时。超时后会使用 fail 回调
coorType 1050+String坐标系类型,可选值可通过 getSupportedCoordTypes 获取,默认为wgs84
successFunction成功回调
failFunction失败回调,原因可能是用户拒绝
completeFunction执行结束后的回调
success 返回值:
参数名类型说明
longitudeNumber经度
latitudeNumber纬度
accuracy 1040+Number精确度
time 1040+Number时间
fail 返回错误代码
错误码说明
201用户拒绝,获取定位权限失败
204超时返回
1000 1000+系统位置开关关闭

示例:

  1. geolocation.getLocation({
  2. success: function(data) {
  3. console.log(
  4. `handling success: longitude = ${data.longitude}, latitude = ${
  5. data.latitude
  6. }`
  7. )
  8. },
  9. fail: function(data, code) {
  10. console.log(`handling fail, code = ${code}`)
  11. }
  12. })

geolocation.getLocationType(OBJECT) 1010+

获取系统当前支持的定位类型

权限要求

精确设备定位

参数:

参数名类型必填说明
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
success 返回值:
参数名类型说明
typesArray支持的类型['gps','network']

示例:

  1. geolocation.getLocationType({
  2. success: function(data) {
  3. console.log(`handling success: locationType = ${data.types}`)
  4. },
  5. fail: function(data, code) {
  6. console.log(`handling fail, code = ${code}`)
  7. }
  8. })

geolocation.subscribe(OBJECT)

监听地理位置。如果多次调用,仅最后一次调用生效

权限要求

精确设备定位

参数:

参数名类型必填说明
reserved 1050+Boolean是否持久化订阅,默认为false。机制:设置为true,页面跳转,不会自动取消订阅,需手动取消订阅
coorType 1050+String坐标系类型,可选值可通过 getSupportedCoordTypes 获取,默认为wgs84
callbackFunction每次位置信息发生变化,都会被回调
failFunction失败回调,原因可能是用户拒绝
callback 返回值:
参数名类型说明
longitudeNumber经度
latitudeNumber纬度
accuracy 1040+Number精确度
time 1040+Number时间
fail 返回错误代码
错误码说明
201用户拒绝,获取定位权限失败
1000 1000+系统位置开关关闭

示例:

  1. geolocation.subscribe({
  2. callback: function(data) {
  3. console.log(
  4. `handling success: longitude = ${data.longitude}, latitude = ${
  5. data.latitude
  6. }`
  7. )
  8. },
  9. fail: function(data, code) {
  10. console.log(`handling fail, code = ${code}`)
  11. }
  12. })

geolocation.unsubscribe()

取消监听地理位置

参数:

示例:

  1. geolocation.unsubscribe()

geolocation.getSupportedCoordTypes() 1050+

获取支持的坐标系类型

参数:

返回值:

字符串数组。当前支持的坐标系类型,如['wgs84']

示例:

  1. var types = geolocation.getSupportedCoordTypes()

后台运行限制

manifest 中申请后可用。后台运行详细用法参见后台运行 脚本