From 42e5ea86f7edc9361227edd979a8ae1952713161 Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期六, 19 十月 2024 16:19:16 +0800
Subject: [PATCH] 添加共享列表,修改共享功能相关代码

---
 App.vue |   82 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 79 insertions(+), 3 deletions(-)

diff --git a/App.vue b/App.vue
index 1efba44..470a053 100644
--- a/App.vue
+++ b/App.vue
@@ -1,10 +1,14 @@
 <script setup>
 	import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
 	import { wxLoginApi } from './api/index.js'
-	onLaunch(() => {
+	
+	//用户打开小程序默认授权
+	function wxLogin(){
+		uni.removeStorageSync('openId');
 		if(!uni.getStorageSync('openId')){
 			wx.login({
 				success:async (res1)=>{
+					//存储微信登录的code
 					uni.setStorageSync('code',res1.code)
 					await wxLoginApi({code:res1.code}).then((res2) =>{
 					uni.setStorageSync('openId',res2.data.userId)
@@ -12,10 +16,83 @@
 				  })
 				},
 				fail:(e) =>{
+					uni.showToast({
+						title: '登录失败,请退出重试!',
+						duration: 2000
+					});
 					console.log(e)
 				}
 			})
 		}
+	}
+	
+	//申请获取用户位置权限
+	let userLocation = {
+		lat:'',
+		lon:'',
+	}
+	function getUserLocation(){
+		// 请求用户授权,第一次进入会有位置授权的提示
+		uni.authorize({
+		  scope: 'scope.userLocation',
+		  success() {
+			 console.log("成功授权位置信息1")
+			 storageLocation()
+		  },
+		  fail() {
+			  console.log("用户拒绝授权位置信息,再次提示用户授权")
+			  showToast()
+		  }
+		})
+		//获取用户位置并存储
+		function storageLocation(){
+			uni.getLocation({
+				type:'gcj02',
+				isHighAccuracy:true,
+				success:(res) =>{
+					userLocation.lat = res.latitude
+					userLocation.lon = res.longitude
+					uni.setStorageSync('userLocation',JSON.stringify(userLocation))
+				},
+				fail:() =>{
+					showToast()
+				}
+			})
+		}
+		//用户拒绝授权
+		function showToast(){
+			uni.showModal({
+				title: "请求授权当前位置",
+				content: "我们需要获取地理位置信息,为您获取附近站点信息!",
+				confirmText: "前往设置",
+				success: (res) => {
+					if (res.confirm) {
+						uni.openSetting({
+							 success:(res1) =>{ //打开设置成功
+								if (res1.authSetting['scope.userLocation']){
+									console.log('用户二次授权成功')
+									storageLocation()
+								}else{
+									showToast()
+									console.log('用户拒绝授权')
+								}
+							},
+						})
+					}else{
+						uni.showToast({
+							title: '请先授权!',
+							duration: 2000,
+							icon:'none'
+						});
+						showToast()
+					}
+				},
+			});
+		}
+	}
+	onLaunch(async() => {
+		await wxLogin()
+		await getUserLocation()
 	});
 	onShow(() => {
 	  console.log("App Show");
@@ -25,6 +102,5 @@
 	});
 </script>
 
-<style>
-	/*每个页面公共css */
+<style lang='scss'>
 </style>

--
Gitblit v1.9.3