|
@@ -30,33 +30,80 @@ function setBar() {
|
|
|
function mount() {
|
|
|
Vue.prototype.getLocation = (isReverseGeocoder = false) => {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
- uni.getLocation({
|
|
|
- altitude: true,
|
|
|
- highAccuracyExpireTime: 5000,
|
|
|
- isHighAccuracy: true,
|
|
|
- success: res => {
|
|
|
- if (isReverseGeocoder) {
|
|
|
- const QQMapWX = require("./qqmap-wx-jssdk.min");
|
|
|
- let qqmapsdk = new QQMapWX({
|
|
|
- key: 'UVVBZ-UOGWZ-ZUWXC-TJQMT-TUWLO-IVFTN'
|
|
|
- });
|
|
|
- qqmapsdk.reverseGeocoder({
|
|
|
- location: {
|
|
|
- latitude: res.latitude,
|
|
|
- longitude: res.longitude
|
|
|
- },
|
|
|
- success(s) {
|
|
|
- console.log("逆解析结果", s.result)
|
|
|
- res.result = s.result;
|
|
|
- resolve(res)
|
|
|
- },
|
|
|
- fail: err => console.error(err)
|
|
|
- });
|
|
|
- } else {
|
|
|
- resolve(res)
|
|
|
+ let that = this;
|
|
|
+ handle()
|
|
|
+
|
|
|
+ function handle() {
|
|
|
+ uni.getLocation({
|
|
|
+ altitude: true,
|
|
|
+ highAccuracyExpireTime: 8000,
|
|
|
+ isHighAccuracy: true,
|
|
|
+ success: res => {
|
|
|
+ console.log("获取定位", res)
|
|
|
+ if (isReverseGeocoder) {
|
|
|
+ const QQMapWX = require("./qqmap-wx-jssdk.min");
|
|
|
+ let qqmapsdk = new QQMapWX({
|
|
|
+ key: 'UVVBZ-UOGWZ-ZUWXC-TJQMT-TUWLO-IVFTN'
|
|
|
+ });
|
|
|
+ qqmapsdk.reverseGeocoder({
|
|
|
+ location: {
|
|
|
+ latitude: res.latitude,
|
|
|
+ longitude: res.longitude
|
|
|
+ },
|
|
|
+ success(s) {
|
|
|
+ console.log("逆解析结果", s.result)
|
|
|
+ res.result = s.result;
|
|
|
+ resolve(res)
|
|
|
+ },
|
|
|
+ fail: err => console.error(err)
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ resolve(res)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: err => {
|
|
|
+ uni.hideLoading();
|
|
|
+ query()
|
|
|
}
|
|
|
- }
|
|
|
- })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ function query() {
|
|
|
+ uni.getSetting({
|
|
|
+ success({
|
|
|
+ authSetting
|
|
|
+ }) {
|
|
|
+ if (authSetting['scope.userLocation']) {
|
|
|
+ handle()
|
|
|
+ } else {
|
|
|
+ uni.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '您未开启地理位置授权',
|
|
|
+ cancelText: '下次再说',
|
|
|
+ confirmText: '前去授权',
|
|
|
+ success: ({
|
|
|
+ confirm
|
|
|
+ }) => {
|
|
|
+ if (confirm) {
|
|
|
+ uni.openSetting({
|
|
|
+ success(res) {
|
|
|
+ if (res.authSetting['scope.userLocation']) handle();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: "已拒绝地理位置授权",
|
|
|
+ icon: "none",
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|