日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信小程序开发——小程序API获取用户位置及异常流处理完整示例

發(fā)布時(shí)間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信小程序开发——小程序API获取用户位置及异常流处理完整示例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:

小程序需要添加一個(gè)定位功能,主要的就是獲取用戶位置的經(jīng)緯度,然后根據(jù)用戶經(jīng)緯度進(jìn)行一些判斷操作。

在小程序提供的Api中,獲取用戶定位信息的主要Api是?wx.getLocation(obj)?。但是使用這個(gè)API,會(huì)先獲取用戶授權(quán)。如果用戶取消授權(quán),那么再調(diào)這個(gè)Api,也不會(huì)再出現(xiàn)授權(quán)頁面,也就不能再獲取用戶位置了,這就需要使用其他的Api輔助打開授權(quán)頁面了。所以獲取用戶位置就需要完整的授權(quán)、獲取位置的流程及異常流處理了。

業(yè)務(wù)流程圖:

關(guān)鍵技術(shù)點(diǎn):

頁面加載默認(rèn)調(diào)用 wx.getLocation ,然后如果獲取失敗則調(diào)用 wx.getSetting ,如果未授權(quán),則調(diào)用 wx.openSetting 打開授權(quán)設(shè)置界面,如果授權(quán)界面設(shè)置允許授權(quán),則返回頁面再次調(diào)用 wx.getLocation,主要的流程就是這個(gè)了。

示例代碼:

1 const app = getApp() 2 3 Page({ 4 data: { 5 hiddenReAuthorizePop:true,//隱藏重新授權(quán)確認(rèn)彈窗 6 latitude: "", //維度,浮點(diǎn)數(shù) 7 longitude: "", //經(jīng)度,浮點(diǎn)數(shù) 8 content:"本活動(dòng)需要獲取位置才可以參加" 9 }, 10 onLoad: function() { 11 //1. 頁面加載的時(shí)候獲取定位 12 this.getLocation() 13 }, 14 /** 15 * 1. 獲取用戶定位 16 */ 17 getLocation: function() { 18 var self = this; 19 wx.getLocation({ 20 type: 'wgs84', // 默認(rèn)為wgs84的gps坐標(biāo),如果要返回直接給openLocation用的坐標(biāo),可傳入'gcj02' 21 altitude: true, //傳入 true 會(huì)返回高度信息,由于獲取高度需要較高精確度,會(huì)減慢接口返回速度 22 success: function(res) { 23 var latitude = res.latitude; // 緯度,浮點(diǎn)數(shù) 24 var longitude = res.longitude; // 經(jīng)度,浮點(diǎn)數(shù) 25 self.setData({ 26 latitude: res.latitude, 27 longitude: res.longitude 28 }) 29 }, 30 fail: function(res) { 31 //未授權(quán)就彈出彈窗提示用戶重新授權(quán) 32 self.reAuthorize(); 33 } 34 }); 35 }, 36 /** 37 * 1.2 重新授權(quán)按鈕點(diǎn)擊事件 38 * click event 39 */ 40 openLocationSetting: function() { 41 var self = this 42 //先獲取用戶的當(dāng)前設(shè)置,返回值中只會(huì)出現(xiàn)小程序已經(jīng)向用戶請(qǐng)求過的權(quán)限 43 wx.getSetting({ 44 success: function(res) { 45 if (res.authSetting && !res.authSetting["scope.userLocation"]) { 46 //未授權(quán)則打開授權(quán)設(shè)置界面 47 wx.openSetting({ 48 success: function(res) { 49 if (res.authSetting && res.authSetting["scope.userLocation"]) { 50 //允許授權(quán),則自動(dòng)獲取定位,并關(guān)閉二確彈窗,否則返回首頁不處理 51 self.getLocation(); 52 self.setData({ 53 hiddenReAuthorizePop:true 54 }) 55 wx.showToast({ 56 title: '您已授權(quán)獲取位置信息', 57 icon: 'none' 58 }) 59 }else{ 60 //未授權(quán)就彈出彈窗提示用戶重新授權(quán) 61 self.reAuthorize(); 62 } 63 } 64 }) 65 } else { 66 //授權(quán)則重新獲取位置新(授權(quán)設(shè)置界面返回首頁,首頁授權(quán)二確彈窗未關(guān)閉) 67 self.getLocation(); 68 } 69 } 70 }) 71 }, 72 /** 73 * 重新授權(quán) 74 */ 75 reAuthorize:function(){ 76 var self=this 77 self.setData({ hiddenReAuthorizePop:false}) 78 } 79 })

?代碼片段地址:https://developers.weixin.qq.com/s/uRMylxmO7e3Q

原創(chuàng)專業(yè)博客,轉(zhuǎn)載請(qǐng)注明來源地址:https://www.cnblogs.com/xyyt/p/9871898.html

轉(zhuǎn)載于:https://www.cnblogs.com/xyyt/p/9871898.html

總結(jié)

以上是生活随笔為你收集整理的微信小程序开发——小程序API获取用户位置及异常流处理完整示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。