uniapp转小程序获取定位

onShow() {
	this.getAuthorizeInfo();
},
// 位置授权
getAuthorizeInfo() {
	let that = this;
	uni.authorize({
		scope: 'scope.userLocation',
		success() { // 允许授权
			that.getLocation();
		},
		fail() { // 拒绝授权
			that.openConfirm();
		}
	})
},
//获取当前位置
getLocation() {
	let _this = this
	let location = {
		lat: 0,
		lng: 0,
	}
	return new Promise((reserve, reject) => { //因为获取位置是异步接口所以需要使用promise
		uni.getLocation({
			success(res) {
				location.lat = res.latitude
				location.lng = res.longitude
				reserve(location);
			},
			fail(err) {
				reject(location); //获取失败则返回经纬坐标为0
			}
		})
	})
},

// 再次获取授权
// 当用户第一次拒绝后再次请求授权
openConfirm() {
	uni.showModal({
		title: '请求授权当前位置',
		content: '需要获取您的地理位置,请确认授权',
		success: (res) => {
			if (res.confirm) {
				uni.openSetting(); // 打开地图权限设置
			} else if (res.cancel) {
				uni.showToast({
					title: '你拒绝了授权,无法获得周边信息',
					icon: 'none',
					duration: 1000
				})
			}
		}
	});
},

uniapp是一款跨平台的开发框架,支持同时开发微信小程序、App、H5等多个平台的应用程序。在uniapp中开发微信小程序定位功能非常简单,可以通过调用uniapp提供的API实现。 首先,在uniapp的项目中,我们可以使用uni.getLocation方法来获取用户的位置信息。这个方法会弹出微信小程序位置授权提示框,用户可以选择是否授权获取位置信息。我们可以在页面的生命周期钩子函数中调用这个方法,例如在mounted钩子函数中。 在调用uni.getLocation方法之前,我们需要先引入uniapp提供的API,可以通过在页面的script标签中添加import语句来实现。引入之后,就可以在页面的方法中调用uni.getLocation方法了。 调用uni.getLocation方法后,会返回一个Promise对象,我们可以通过.then方法来处理获取位置信息成功的情况,并进行相应的处理操作,例如展示地理位置的信息。如果获取位置信息失败,可以使用.catch方法来处理。 通过以上的步骤,我们就可以在uniapp微信小程序中实现定位功能的demo了。当然,在实际开发中,我们还可以通过uni.showLoading等方法来优化用户体验,例如在获取位置信息期间显示一个加载动画。 总结一下,uniapp微信小程序定位demo的实现步骤如下:引入uniapp提供的API,调用uni.getLocation方法获取位置信息,处理获取位置信息成功或失败的情况,并进行相应的操作。希望以上的回答对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值