定位实现周边信息的搜索
第一步在
module.json5内部配置
//注意是resources下面的module.json5文件哦 "requestPermissions": [ //网络权限的配置如在线网址的图片 { "name": "ohos.permission.INTERNET", }, //获取定位的权限配置 { "name": "ohos.permission.LOCATION" }, //获取定位的权限配置 { "name": "ohos.permission.APPROXIMATELY_LOCATION" }, ],
第二步导入三个包
import geoLocationManager from '@ohos.geoLocationManager'; //获取用户位置信息 import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import bundleManager from '@ohos.bundle.bundleManager';
第三步 定义一个方法获取权限
async checkAccess(permission) { //创建权限管理对象 let atManager = abilityAccessCtrl.createAtManager() //获取应用信息 let bundleInfo = await bundleManager.getBundleInfoForSelf(0x00000001) //拿到应用程序标识 let accessTokenId = bundleInfo.appInfo.accessTokenId //检测权限授予情况 let grantStatus = await atManager.checkAccessToken(accessTokenId, permission) return grantStatus === 0 //0已授权 1未授权 } async reqPermissionsFromUser(permissions) { //上下文对象 let context = getContext(this) // 创建权限管理对象 let atManager = abilityAccessCtrl.createAtManager(); // requestPermissionsFromUser会自动判断权限的授权状态来决定是否唤起弹窗 let {authResults} = await atManager.requestPermissionsFromUser(context, permissions) //authResults授权结果集合 0允许 1拒绝 return authResults.map(v =>!v); } 你可以选择在(生命周期)初始化声明周期的时候直接调用 比如说这样 await let res = await this.reqPermissionsFromUser(['ohos.permission.APPROXIMATELY_LOCATION',"ohos.permission.LOCATION"]) 调用一次(唤起弹窗) 你可以打印看看结果是什么 // 获取用户位置信息 geoLocationManager.getCurrentLocation({ 'priority': 0x203, 'scenario': 0x300, 'maxAccuracy': 0 }, (err, data) => { console.log("当前的经度" + data.longitude, "当前的纬度" + data.latitude) 在这里面你可以进行你想要进行的操作 直接去高德地图/百度地图发起请求 第一步导入鸿蒙内置的 //导入网路请求 import http from '@ohos.net.http'; //生成请求示例 let net = http.createHttp() //发起网络请求 //销毁请求对象 net.destroy() }