HarmonyOS 在webview中是如何调用手机定位获取到经纬度的?

HarmonyOS 在webview中是如何调用手机定位获取到经纬度的?

HarmonyOS
2024-11-06 10:02:13
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

​获取经纬度可以参考地理编码转换将地理描述转化为具体坐标参考文档:​https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/geocode-guidelines-V5

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-geolocationmanager-V5#geolocationmanagergetaddressesfromlocationname

获取位置信息首先需要在module.json5中申请权限: const permissions: Array<Permissions> = [‘ohos.permission.APPROXIMATELY_LOCATION’, ‘ohos.permission.LOCATION’]

其次需要在页面启动时主动获取用户授权:​

private requestLocationPermissions() { 
  let atManager = abilityAccessCtrl.createAtManager() 
  // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗  
  atManager.requestPermissionsFromUser(getContext(this), permissions).then((data) => { 
    let grantStatus: Array<number> = data.authResults; 
    let length: number = grantStatus.length; 
    for (let i = 0; i < length; i++) { 
      if (grantStatus[i] === 0) { 
        // 用户授权,可以继续访问目标操作  
        return 
      } 
      else { 
        // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限  
        return; 
      } 
    } 
  }).catch((err: BusinessError) => { 
    hilog.error(0x0000, TAG, `requestPermissionsFromUser failed, code is ${err.code}, message is ${err.message}`); }) 
} 

最后再申请位置信息:

private requestLocation() { 
  let requestInfo: geoLocationManager.LocationRequest = { 'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0 }; 
  try { geoLocationManager.on('locationChange', requestInfo, this.locationChange) } 
  catch (err) { hilog.error(0x0000, TAG, "errCode:" + err.code + ",errMessage:" + err.message); } 
} 
private removeLocation() { 
  try { geoLocationManager.off('locationChange', this.locationChange); 
  } 
  catch (err) { 
    hilog.error(0x0000, TAG, "errCode:" + err.code + ",errMessage:" + err.message); 
  } 
}
分享
微博
QQ
微信
回复
2024-11-06 15:45:49
相关问题
HarmonyOS 坐标系经纬度转换
263浏览 • 1回复 待解决
如何获取经纬度示例代码
967浏览 • 1回复 待解决
场景化控件无法获取到定位信息
1824浏览 • 1回复 待解决
HarmonyOS js调用webview方法
463浏览 • 1回复 待解决
hvigro如何获取到buildMode
1947浏览 • 1回复 待解决
webviewoninterceptrequest调用异步操作
2032浏览 • 1回复 待解决
startAbility调用失败如何定位
778浏览 • 1回复 待解决