腾讯定位服务管理接口,提供连续定位、单次定位、设备状态监听、地理围栏等核心功能。

Author

Tencent Location Team

Since

1.0.0

interface TencentLocationManager {
    startContinuousLocation(request, success, failure): void;
    stopContinuousLocation(): void;
    startReceivingDeviceStatus(callback): void;
    stopReceivingDeviceStatus(): void;
    startReceivingDeviceOrientation(callback): void;
    stopReceivingDeviceOrientation(): void;
    startSingleLocation(request, success, failure): void;
    getLastLocation(): TencentLocation;
    startBackgroundLocationTask(wantAgentInfo?): void;
    stopBackgroundLocationTask(): void;
    addGeofence(geofenceRequest): Promise<number>;
    removeGeofence(geofenceID?): Promise<void>;
}

Methods

  • 开始连续定位。

    Parameters

    Returns void

    Example

    const request = TencentLocationRequest.default().setInterval(5)
    locationManager?.startContinuousLocation(request, location => {
    console.info('连续定位结果:', JSON.stringify(location))
    }, error => {
    console.error('连续定位失败:', JSON.stringify(error))
    })

    Since

    1.0.0

  • 停止连续定位。

    Returns void

    Since

    1.0.0

  • 开始接收设备状态变化通知。

    Parameters

    • callback: Callback<DeviceStatus>

      设备状态变化回调函数。

    Returns void

    Since

    1.0.0

  • 停止接收设备状态变化通知。

    Returns void

    Since

    1.0.0

  • 开始接收设备朝向变化通知。

    Parameters

    • callback: Callback<number>

      设备朝向变化回调函数,参数为朝向角度(0-360度)。

    Returns void

    Example

    locationManager?.startReceivingDeviceOrientation(orientation => {
    console.info('设备朝向:', orientation)
    })

    Since

    1.0.4

  • 停止接收设备朝向变化通知。

    Returns void

    Since

    1.0.4

  • 开始单次定位。

    Parameters

    Returns void

    Example

    const request = TencentLocationRequest.default().setSingleLocationTimeout(10)
    locationManager?.startSingleLocation(request, location => {
    console.info('单次定位结果:', JSON.stringify(location))
    }, error => {
    console.error('单次定位失败:', JSON.stringify(error))
    })

    Since

    1.0.0

  • 获取最后一次缓存的定位结果。

    SDK 会缓存最后一个回调给开发者的定位结果,该值有可能为 undefined。

    Returns TencentLocation

    最后一次定位结果,如果没有缓存则返回 undefined。

    Example

    const lastLocation = locationManager?.getLastLocation()
    console.info('最后位置:', JSON.stringify(lastLocation))

    Since

    1.0.0

  • 开始后台定位任务。

    Parameters

    • Optional wantAgentInfo: WantAgentInfo

      后台定位任务的 WantAgent 信息,可选参数。

    Returns void

    Since

    1.0.1

  • 停止后台定位任务。

    Returns void

    Since

    1.0.1

  • 添加地理围栏。

    Parameters

    Returns Promise<number>

    Promise 对象,成功时返回围栏 ID。

    Example

    const geofenceRequest = new TencentGeofenceRequest(...)
    locationManager?.addGeofence(geofenceRequest).then(geofenceID => {
    console.info('围栏添加成功, ID:', geofenceID)
    }).catch(error => {
    console.error('围栏添加失败:', JSON.stringify(error))
    })

    Since

    1.0.2

  • 移除地理围栏。

    Parameters

    • Optional geofenceID: number

      要移除的围栏 ID,如果不传则移除所有围栏。

    Returns Promise<void>

    Promise 对象。

    Example

    // 删除指定围栏
    this.locationManager?.removeGeofence(this.currentLocationGeofenceID)

    // 删除所有围栏
    // this.locationManager?.removeGeofence()

    Since

    1.0.2