洛阳学员端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

107 lines
5.2 KiB

var KJTencentLocation = uni.requireNativePlugin("KJ-TencentLocation");
var kic = {
"apiKey": "BPMBZ-VSKE3-MC23F-O3KZO-AZGI7-PXFJI", //ios才有效,andorid的在App原生插件配置里设置
"deviceID": "oaid" //andorid必须设置,默认使用oaid,ios无需设置
}
// 获取系统信息
const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === 'ios') { // 如果是 iOS 平台
KJTencentLocation.setUserAgreePrivacy({"isAgree": true});
KJTencentLocation.getLocationAuthorizationStatus((res) => {
console.log("getLocationAuthorizationStatus:" + JSON.stringify(res));
/**
* status - 权限状态 0-还没决定 1-受限制 2-拒绝 3、4、5-已授权
* */
});
KJTencentLocation.requestLocationAuthorization((res) => {
console.log("requestLocationAuthorization:" + JSON.stringify(res));
/**
* status - 权限状态 0-还没决定 1-受限制 2-拒绝 3、4、5-已授权
* */
});
delete kic.deviceID
}
KJTencentLocation.init(kic);
var dic = {
"coordinateType": "GCJ02", //设置坐标系 GCJ02(火星坐标,即国测局坐标) WGS84(地球坐标,注:如果是海外,无论设置的是火星坐标还是地球坐标,返回的都是地球坐标)
"requestLevel": 4, //请求等级 0(包含经纬度) 1(包含经纬度, 位置名称, 位置地址) 3(包含经纬度,位置所处的中国大陆行政区划) 4(包含经纬度,位置所处的中国大陆行政区划及周边POI列表)
/**以下andorid有效**/
"mockEnable": false, //是否允许mockGps数据 设置为true后将不对mockGps进行过滤,是否允许应用对GPS进行模拟
"systemCacheEnable": false, //是否允许在定位失败情况下返回系统缓存位置
//"deviceID":"xxx", //设备id
"userAgreePrivacy": true, //设置用户是否同意隐私协议政策
"allowCache": true, //是否允许使用缓存
"allowDirection": true, //是否允许使用设备传感器获取方向
"allowGPS": true, //是否允许使用GPS进行定位
"gnssSource": 20, //设置优先卫星定位信号来源 改设置仅对连续定位生效,20(GPS) 21(北斗)
"gpsFirst": false, //首次定位是否等待卫星定位结果,默认为false 当设置为true时,首次定位会等待卫星定位结果,默认等待时间为30s,超时将返回网络定位结果
"gpsFirstTimeOut": 10000, //卫星定位优先时,等待卫星定位结果对的超时时间,单位: ms, 最多等待60s.
"indoorLocationMode": true, //启动室内定位
"interval": 5000, //定位周期(位置监听器回调周期), 单位为 ms (毫秒).
"locMode": 10, //定位模式 10(高精度定位模式,将同时使用网络定位和卫星定位,优先返回精度高的定位) 11(仅网络定位模式,将不启动gps定位,只使用网络定位,可以减少耗电量,但定位精度有所降低) 12(仅GPS定位模式)
// "phoneNumber": "111",
// "qq": "xxx",
// "smallAppKey": "xxx", //设置分渠道的key编码号,例如小程序里面区分业务.
/**以下ios有效**/
"distanceFilter": 0, //设置定位的最小更新距离
"desiredAccuracy": "best", //设置定位精度 bestForNavigation best nearestTenMeters hundredMeters kilometer threeKilometers
"pausesLocationUpdatesAutomatically": false, //定设置位是否会被系统自动暂停
"allowsBackgroundLocationUpdates": true, //设置是否允许后台定位 为true 需要配置manifest.json->App常用其它设置->后台运行能力 location
"activityType": 1, //设置用户的活动类型 1(未知的出行活动类型) 2(位置管理器专门为出行活动为汽车的时候导航) 3(位置管理器专门为步行、跑步、骑自行车等健身时,提供导航) 4(位置管理器专门为其他类型的大型交通工具导航,而不是汽车导航)
//"headingFilter": 10, //设置当朝向改变时,每隔多少度调用一次
"headingOrientation": 0, //设置设备当前的朝向 0(未知) 1(竖屏) 2(竖屏正方向,颠倒) 3(屏左方向,主按钮在右侧) 4(横屏右方向,主按钮在左侧) 5(设备正面朝上) 6(设备正面朝下)
"poiUpdateInterval": 10, //指定POI的更新间隔 单位秒
"enableAntiMockLocation": true //是否允许开启反作弊检查
}
KJTencentLocation.setLocationManagerInfo(dic)
export function requestSingleFreshLocation() {
return new Promise((resolve, reject) => {
console.log(KJTencentLocation.requestSingleFreshLocation)
KJTencentLocation.requestSingleFreshLocation((res) => {
console.log(res)
if (systemInfo.platform === 'ios') { // 如果是 iOS 平台
if (res.location.fakeCode != 0) {
uni.$u.toast('请关闭虚拟定位')
let obj = {
location: {
latitude: '',
longitude: '',
city: '虚拟定位'
}
}
resolve(obj)
}
}
// if(res.location.latitude==0) {
// uni.showModal({
// title: 'app想要获取您的定位权限',
// content: '为了能够获取精确的数据,请去手机设置里手动开启app定位权限',
// showCancel: false,
// confirmText: '知道了,关闭弹窗',
// success: function (res) {
// if (res.confirm) {
// console.log('用户点击确定');
// } else if (res.cancel) {
// console.log('用户点击取消');
// }
// }
// });
// }
resolve(res)
});
})
}