From 4efeb31d5b4921d7e851c256009486ad86bc70e2 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 21 Jun 2022 09:14:57 +0800
Subject: [PATCH] 地址替换

---
 App.vue |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 4 deletions(-)

diff --git a/App.vue b/App.vue
index 79c0309..2ceb0f3 100644
--- a/App.vue
+++ b/App.vue
@@ -66,6 +66,57 @@
 					this.socket.emit('newPeople', this.name);
 				}
 			},
+			getLocationFn() {
+				const _this = this
+				uni.getLocation({
+					type: 'gcj02', // <map> 组件默认为国测局坐标gcj02
+					altitude: true,
+					success(res) {
+						console.log('返回的位置信息', res, _this)
+						_this.globalData.userInfo = {
+							latitude: res.latitude,
+							longitude: res.longitude
+						}
+					}
+				})
+			},
+			handleAuthorize() {
+				const _this = this // 下边this 为undefined
+				uni.authorize({
+					scope: 'scope.userLocation', // 获取地理信息必填的参数,其它参数见文档
+					success(res) {
+						_this.getLocationFn()
+					},
+					// 授权失败
+					fail(err) {
+						err = err['errMsg']
+						uni.showModal({
+								title: '温馨提示',
+								content: '为获取位置信息,您必须授权!',
+								showCancel: false,
+								confirmText: '确认授权'
+							})
+							// 这里只设置了确认按钮,没有取消按钮
+							.then(res => {
+								//res : [null, {cancel: false, confirm: true, errMsg: 'showModal: ok'}]
+								if (res[1]['confirm']) { // 点击了确认按钮时
+									// 调用下边方法时,会弹出 【使用我的地理位置】界面, 未设置直接返回,还是会走fail授权失败的函数,
+									// 还是会弹出上边的温馨提示!!!
+									// 如果设置, scope.userLocation: true
+									uni.openSetting({
+										success(res) {
+											// 如果不设置,res结果:
+											// {errMsg: "openSetting:ok", authSetting: {scope.userLocation: false}}
+											// 如果设置, res结果: 
+											// {errMsg: "openSetting:ok", authSetting: {scope.userLocation: true}}
+											// console.log('小程序设置界面:', res)
+										}
+									})
+								}
+							})
+					}
+				})
+			}
 		},
 		watch: {},
 		mounted() {
@@ -76,23 +127,23 @@
 			// });
 
 
-			
+
 		},
 		onLaunch: function() { //初始化完成时触发(全局只触发一次)
 			var that = this;
 			if (WxStorage.get("init") == '') {
 				WxStorage.set("init", 'false');
 				console.log('第一次进入');
-				
+
 				// uni.connectSocket({
 				// 	url: 'ws://192.168.0.111:9034/websocket'
 				// });
-				
+
 				// uni.onSocketOpen(function(res) {
 				// 	socketOpen = true;
 				// 	sendSocketMessage();
 				// });
-				
+
 				// function sendSocketMessage() {
 				// 	var data = {
 				// 				type: that.$store.state.puserName,
@@ -117,6 +168,7 @@
 		onShow: function() { //当 uni-app 启动,或从后台进入前台显示 //监听用户进入小程序
 			// console.log('App Show')
 			// this.judgeAdmin();
+			// this.handleAuthorize()
 		},
 		onHide: function() {
 			// console.log('App Hide')

--
Gitblit v1.9.3