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 坐标系经纬度转换
73浏览 • 1回复 待解决
如何获取经纬度示例代码
869浏览 • 1回复 待解决
场景化控件无法获取到定位信息
1728浏览 • 1回复 待解决
HarmonyOS js调用webview方法
344浏览 • 1回复 待解决
hvigro如何获取到buildMode
1859浏览 • 1回复 待解决
安卓app鸿蒙2.0无法获取定位信息
14512浏览 • 4回复 待解决
webviewoninterceptrequest调用异步操作
1954浏览 • 1回复 待解决