常見問題

uni-app微信小程序地圖獲取當(dāng)前位置完整案例

常見問題

2766

字體:

首先需要在配置文件中進(jìn)行配置授權(quán)提示 點擊源碼視圖 添加下面代碼

/* 小程序特有相關(guān) */
    "mp-weixin" : {
        "appid" : "wxda33332553aa5",
        "setting" : {
            "urlCheck" : false
        },
	"permission" : {
	    "scope.userLocation" : {
		"desc" : "您的位置將用于綁定您的區(qū)域"
	    }
	},
        "usingComponents" : true
    },

主要添加

"permission" : {
	    "scope.userLocation" : {
		"desc" : "您的位置將用于綁定您的區(qū)域"
	    }
},

如果獲取當(dāng)前位置需要多次使用可以封裝在公共js文件中

//網(wǎng)絡(luò)請求
	map: function() {
		//對參數(shù)進(jìn)行處理
		return new Promise((reslove, reject) => {
			uni.chooseLocation({
					success:(res)=> {
					reslove(res);
					},
					fail:()=>{
						uni.getSetting({
							success: (res) => {
								var status = res.authSetting;
								if(!status['scope.userLocation']){
									uni.showModal({
										title:"是否授權(quán)當(dāng)前位置",
										content:"需要獲取您的地理位置,請確認(rèn)授權(quán),否則地圖功能將無法使用",
										success:(tip)=>{
											if(tip.confirm){
												uni.openSetting({
													success:(data)=>{
													
														if(data.authSetting['scope.userLocation']===true){
															uni.showToast({
																title:"授權(quán)成功",
																icon:"success",
																duration:1000
															})
															uni.chooseLocation({
																success: (res) => {
															reslove(res);
																	// this.getRegionFn(res);
																}
															})
														}else{
															uni.showToast({
																title:"授權(quán)失敗",
																icon:"none",
																duration:1000
															})
														}
													}
												})
											}
										}
									})
								}
							},
							fail: (res) => {
								uni.showToast({
									title:"調(diào)用授權(quán)窗口失敗",
									icon:"none",
									duration:1000
								})
							}
						})
					}
				});
		});
	},
	

頁面調(diào)用

<view @click="chooseLocation" class="iconfont icon-daohang"> </view>
//獲取位置
chooseLocation(){
	this.helper.map().then(res => {
		this.homeAddressStreet=res.address
		this.latitude=res.latitude
		this.name=res.name
		this.longitude=res.longitude	
	});
},


[聲明]原創(chuàng)不易,請轉(zhuǎn)發(fā)者備注下文章來源(hbsjsd.cn)【速建時代】。