1.首先要在manifest.js开启ios后台运行能力:location
注意: 需要打自定义基座才能测试息屏操作
(ios的自定义基座安装到手机是个坑,简单的说下经验:ios证书分发布dist和开发证书dev)
自己测试当然要打dev开发证书----并且要在ios开发团队加入你测试机的id,不然你打了ios自定义基座,也装不上;
2.代码:
var watchId ; // 全局定义
onLoad(){
if(that.isPhone==='android'){
// android手机--获取gps---这里我android和ios使用的不是一个方法定位
this.getLocationPermission();
}else{
// ios定位
this.getIosLocation();
}
}
onUnload(){
// 页面卸载--停止监听位置变化
plus.geolocation.clearWatch(watchId);
}
methods:{
getIosLocation(){
console.log('我是ios 定位')
/**
* 判断是否开启定位
* @param {Object} isTask
*/
var result = permision.judgeIosPermission('location')
console.log(result);
if(result){
// uni.showModal({
// content:'后台定位已开启',
// showCancel: false
// });
console.log('后台定位已开启')
}else{
console.log("手机系统的定位没有打开");
// 定位没有开启时 提示用户是否开启
plus.nativeUI.confirm("定位权限没有开启,是否去开启?", function(e) {
if (e.index == 1) {
var UIApplication = plus.ios.importClass("UIApplication");
var application2 = UIApplication.sharedApplication();
var NSURL2 = plus.ios.importClass("NSURL");
var setting2 = NSURL2.URLWithString("app-settings:"); // 打开应用权限
application2.openURL(setting2);
plus.ios.deleteObject(setting2);
plus.ios.deleteObject(NSURL2);
plus.ios.deleteObject(application2);
}
}, {
"buttons": ["不开启", "去设置"],
"verticalAlign": "center"
});
}
/**
* 开启定位
* @param {Object} options
*/
// 这一步可以不要---我想获取一个点,过滤掉第一个点--而然并没有什么用---最后还是要后端纠偏一下
uni.getLocation({
type: 'gcj02',
success: function (res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
oldLatitude = res.latitude;
oldLongitude = res.longitude;
}
});
// 开始监听
/* geocode: (Boolean 类型 )是否解析地址信息;coordsType: (String 类型 )指定获取的定位数据坐标系类型;maximumAge: (Number 类型 )获取位置信息的间隔时间;是否高精确度获取位置信息
高精度获取表示需要使用更多的系统资源,默认值为false。 */
watchId = plus.geolocation.watchPosition( function ( res ) {
/* altitudeAccuracy:高度; heading: (Number 类型 )表示设备移动的方向 ;altitudeAccuracy: (Number 类型 )海拔的精确度信息*/
console.log( "监听位置变化信息:" );
console.log( JSON.stringify(res) );
let result = res.coords;
// console.log(gps.length)
}, function ( e ) {
console.log( "监听位置变化信息失败:"+e.message );
}, {'enableHighAccuracy':true,'geocode': false,'maximumAge':2000, 'provider': 'amap'} );
},
}
7 个评论
要回复文章请先登录或注册
s***@163.com
激流勇进
6***@qq.com
1***@qq.com (作者)
1***@qq.com (作者)
1***@163.com