前言
uni.chooseLocation打開地圖選擇位置,看官方文檔介紹的比較簡單,但是需要注意的細節不少,如果沒有注意可能就無法使用該API或者報錯,下面就把詳細的配置方法做一下介紹。
一、勾選位置接口
①在uniapp項目根目錄找到manifest.json
②選擇微信小程序配置
③在微信小程序權限配置項,勾選位置接口,輸入:你的位置信息將用于小程序位置接口的效果展示
勾選完位置接口后,可以點擊manifest.json欄目內的“源碼視圖”,可以看到在“mp-weixin”這個項目里面,自動添加了“permission”屬性,在屬性內創建了“scope.userLocation”用戶地址的權限說明,說明的內容就是剛剛的第③步,說明可以直接勾選,也可以直接在源碼視圖中,復制下面的代碼也是一樣的。
"permission": {"scope.userLocation": {"desc": "你的位置信息將用于小程序位置接口的效果展示"}
}

二、requiredPrivateInfos申明需要使用的地理位置相關接口
如果只是在manifest.json勾選了位置接口就直接調用uni.chooseAddress,在回調函數success中獲取不到任何的值,但是在fail中打印錯誤信息,示例代碼:
uni.chooseAddress({success: (res) => {console.log(res);},fail(err) {console.log(err);}
});

會在fail報以上的錯誤:errMsg: “chooseAddress:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json”,出現以上錯誤,就是需要我們在源碼視圖的微信小程序屬性中,申明需要使用的地理位置相關接口,如下所示:

"requiredPrivateInfos": ["chooseLocation"]
設置了該屬性之后,執行仍然會報錯,需在小程序管理后臺,「開發」-「開發管理」-「接口設置」中自助開通該接口權限。
三、開通接口權限

在小程序后臺,選擇開發管理 -> 接口設置 -> 開通需要的api權限,填寫一下申請接口理由,如實填寫一下,等待審核。

提交申請后,大概工作日半天內就能審核通過,出現已開通,說明就可以使用這個api了。

主要: 在賬號設置中,服務內容聲明的“用戶隱私保護指引”,點擊去完善。


再使用chooseLocation該API,就會獲取到需要的值了,可以看到address詳細地址、name位置名稱、latitude緯度、longitude經度。
uni.chooseAddress({success: (res) => {console.log(res);},fail(err) {console.log(err);}
});
