国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序獲取地理位置失敗原因及解決方案

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序獲取地理位置失敗原因及解決方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

微信小程序獲取用戶地理位置失敗的原因主要有3種情況:

1. 手機(jī)系統(tǒng)設(shè)置中地理位置未開啟
2. 系統(tǒng)未給微信app授權(quán)
3. 用戶未給小程序授權(quán)地理位置信息

所以需要繼續(xù)完善下定位失敗的處理邏輯。

1. 在獲取地理位置信息失敗后,首先判斷用戶手機(jī)系統(tǒng)定位服務(wù)是否開啟 || 微信app是否有定位授權(quán),兩種情況任意一種不符合,顯示地理位置獲取失敗狀態(tài);
2. 都符合的話調(diào)用uni.getLocation,success走成功的操作,fail表示未給小程序授權(quán)地理位置信息,顯示地理位置獲取失敗狀態(tài);uni.openSetting打開設(shè)置,選擇允許小程序授權(quán)。

涉及到一個關(guān)鍵點(diǎn)是,微信小程序判斷手機(jī)有沒有定位的方法
uni.getSystemInfo文檔

//locationEnabled	地理位置的系統(tǒng)開關(guān)
//locationAuthorized	允許微信使用定位的開關(guān)
uni.getSystemInfo({
        success: (res) => {
          if (!res.locationEnabled || !res.locationAuthorized) {
            uni.showToast({
              title: '請確保手機(jī)系統(tǒng)定位已開啟',
              icon: 'none',
              duration: 2000,
            })
        },
      })

獲取地理位置失敗顯示效果圖
微信小程序獲取地理位置失敗原因及解決方案

具體代碼如下:

封裝tool.js

//位置授權(quán)
export function getAuthorize () {
  return new Promise((resolve, reject) => {
    uni.authorize({
      scope: 'scope.userLocation',
      success: () => {
        // 1 用戶允許授權(quán)
        // 2 用戶之前已經(jīng)同意授權(quán),則不會出現(xiàn)彈窗,直接返回成功
        //  以上兩種情況都會進(jìn)入到success回調(diào)中
        resolve() // 允許授權(quán)
      },
      fail: () => {
        // 1 用戶拒絕授權(quán)
        // 2 用戶之前拒絕了授權(quán),此接口會直接進(jìn)入失敗回調(diào)
        //  以上兩種情況都會進(jìn)入到fail回調(diào)中
        reject() // 拒絕授權(quán)
      },
    })
  })
}

父組件html

<template>
  <view>
    <!-- 未開啟定位時(shí)狀態(tài) -->
    <notGps v-if="showNoGps" />
    <!-- 已開啟定位時(shí),正常顯示頁面 -->
    <view v-else class="index_root">
      <view>頁面內(nèi)容</view>
    </view>
  </view>
</template>

父組件js

<script>
import { getAuthorize } from '@/utils/tool.js' //引入位置授權(quán)
import notGps from './component/notGps.vue' // 引入未開啟定位子組件
 data() {
   return {
    showNoGps: false,
   },
onLoad(e) {
    uni.showLoading({
      title: '加載中',
      mask: true,
    })
    //位置授權(quán)
    getAuthorize() 
    //用戶允許小程序位置授權(quán)
      .then(() => {
        this.getSystemInfo()
       })
      //用戶拒絕小程序位置授權(quán)
      .catch(() => {
        uni.hideLoading()
        this.getSystemInfo()
       })
 },
onShow() {
  if (this.showNoGps === true) {
    this.getSystemInfo()
  }
 }
  methods: {
    //獲取手機(jī)系統(tǒng)信息
    getSystemInfo() {
      uni.getSystemInfo({
        success: (res) => {
          // 獲取地理位置失敗原因
          // 1.手機(jī)系統(tǒng)設(shè)置中地理位置未開啟
          // 2.系統(tǒng)未給微信授權(quán)
          // 3.用戶未給小程序授權(quán)地理位置信息
          if (!res.locationEnabled || !res.locationAuthorized) {
            uni.showToast({
              title: '請確保手機(jī)系統(tǒng)定位已開啟',
              icon: 'none',
              duration: 2000,
            })
            this.showNoGps = true
          } else {
            this.getLocation()
          }
        },
    //先獲取經(jīng)緯度,然后再根據(jù)經(jīng)緯度通過騰訊地圖獲取地址名稱
    getLocation() {
      const that = this
      uni.getLocation({
        type: 'gcj02',
        success(res) {
        // 成功進(jìn)行的操作
          let longitude = res.longitude
          let latitude = res.latitude
          getAddress(longitude, latitude)
            .then((res) => {
              let params = {
                city: res.result.address_component.city,
                name: res.result.address_reference.landmark_l2.title,
                lng: longitude,
                lat: latitude,
              }
              that.$store.commit('setLocation', params)
              // 獲取定位成功,關(guān)閉獲取地理位置失敗顯示效果
              that.showNoGps = false
              uni.showLoading({
                title: '加載中',
                mask: true,
              })
              //請求接口獲取頁面數(shù)據(jù)
              that.getGoodsList()
            })
            .catch((e) => {
              console.log(e, '解釋地址失敗')
            })
        },
        fail(err) {
        // 到這里進(jìn)入fail就只有情況3,用戶未給小程序授權(quán)地理位置信息,顯示獲取地理位置失敗顯示效果
          console.log(err, '獲取經(jīng)緯度失敗')
          that.showNoGps = true
        },
      })
    },
      })
    },
   }
 </script>

notGps組件

<template>
  <view class="openGps">
    <image src="@/static/image/no_goods.png" class="empty-img"></image>
    <view class="empty-txt">
      為給您提供最佳服務(wù),小程序需要獲取您的當(dāng)前位置以定位您附近的商戶
    </view>
    <view class="handleBtn" @click="gotoLocation">點(diǎn)擊開啟定位</view>
  </view>
</template>

<script>
export default {
  data() {
    return {}
  },
  methods: {
  //打開小程序授權(quán)地理位置設(shè)置,不管用戶操作是否授權(quán),返回父組件頁面之后,都會觸發(fā)onShow周期函數(shù)里的代碼
    gotoLocation() {
      uni.openSetting({
        success(res) {
          console.log(res.authSetting)
        },
      })
    },
  },
}
</script>

<style lang="scss">
.openGps {
  text-align: center;
  padding: 400rpx 80rpx 0 80rpx;
}
.empty-img {
  width: 380rpx;
  height: 284rpx;
}
.empty-txt {
  font-size: 28rpx;
  color: #999;
}
.handleBtn {
  background: linear-gradient(-10deg, #00ca20, #02bb34);
  font-size: 20rux;
  color: #fff;
  font-weight: bold;
  width: 300upx;
  text-align: center;
  height: 70upx;
  line-height: 70upx;
  border-radius: 35upx;
  margin: 30upx auto;
}
</style>

可參考:
微信小程序拒絕定位之后 如何再次開啟以及判斷是否打開了系統(tǒng)定位功能
微信小程序獲取地理位置,用戶未開啟手機(jī)定位時(shí)的解決方案文章來源地址http://www.zghlxwxcb.cn/news/detail-496506.html

到了這里,關(guān)于微信小程序獲取地理位置失敗原因及解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序通過startLocationUpdate,onLocationChange獲取當(dāng)前地理位置信息,配合騰訊地圖解析獲取到地址

    先創(chuàng)建個getLocation.js文件 在App.vue文件里引入封裝的getLocation.js文件 要在manifest.json文件里配置下內(nèi)容

    2024年02月03日
    瀏覽(88)
  • 【微信小程序地理位置權(quán)限】申請教程

    【微信小程序地理位置權(quán)限】申請教程

    1.微信為進(jìn)一步規(guī)范開發(fā)者調(diào)用涉用戶信息相關(guān)接口或功能,自2022年4月18日開始,將對地理位置相關(guān)接口實(shí)行準(zhǔn)入開通。如未申請,后續(xù)將影響線上小程序相關(guān)功能的使用。 點(diǎn)擊查看公告: 小程序地理位置相關(guān)接口調(diào)整 (qq.com) 1.打開微信公眾平臺 (qq.com),掃碼登錄小程序管

    2024年02月11日
    瀏覽(21)
  • 微信小程序地理位置權(quán)限申請及使用教程

    微信小程序地理位置權(quán)限申請及使用教程

    準(zhǔn)備工作 需要在 微信開發(fā)者平臺 中注冊一個小程序賬號,微信開發(fā)者平臺官網(wǎng)如下 https://mp.weixin.qq.com/ 申請流程 登錄 微信開發(fā)者平 臺后,在左側(cè)選項(xiàng)欄點(diǎn)擊 開發(fā)-開發(fā)管理 在 開發(fā)管理 中點(diǎn)擊 接口設(shè)置 ,在下面就可以進(jìn)行 地理位置權(quán)限申請 了,其中wx. getFuzzyLocation接口

    2024年02月12日
    瀏覽(24)
  • 微信小程序中的H5頁面如何調(diào)用地理位置導(dǎo)航

    在微信小程序的H5頁面中,我們經(jīng)常需要使用地理位置導(dǎo)航功能,以便為用戶提供準(zhǔn)確的導(dǎo)航服務(wù)。下面將介紹如何在微信小程序的H5頁面中調(diào)用地理位置導(dǎo)航功能,并提供相應(yīng)的源代碼示例。 獲取用戶地理位置 在調(diào)用地理位置導(dǎo)航之前,首先需要獲取用戶的地理位置信息。

    2024年02月04日
    瀏覽(26)
  • 【微信小程序地理位置權(quán)限】wx.getLocation申請教程+申請素材

    【微信小程序地理位置權(quán)限】wx.getLocation申請教程+申請素材

    為進(jìn)一步規(guī)范開發(fā)者調(diào)用涉用戶信息相關(guān)接口或功能,保障用戶合法權(quán)益,平臺將對如下地理位置相關(guān)接口調(diào)用實(shí)行準(zhǔn)入開通: wx.getLocation、wx.onLocationChange、wx.chooseAddress、wx.chooseLocation、wx.choosePoi 自2022年4月18日開始,如使用以上接口,在代碼審核環(huán)節(jié)將檢測該接口是否已完

    2024年02月10日
    瀏覽(40)
  • 微信小程序地理位置接口wx.getLocation接口申請方法技巧

    微信小程序地理位置接口wx.getLocation接口申請方法技巧

    我們在開發(fā)微信小程序的時(shí)候,提交審核微信官方就會檢測咱們的小程序有沒有用到位置功能,涉及用到哪個位置接口,然后就會要求我們先申請相應(yīng)的位置接口,審核通過后才可以發(fā)布小程序。 這個接口審核一直是讓大家頭痛的事情,有的小伙伴申請幾十次都不給過,有時(shí)

    2024年02月13日
    瀏覽(17)
  • 微信小程序申請地理位置接口wx.getLocation不通過的應(yīng)對方案 過率很高

    微信小程序申請地理位置接口wx.getLocation不通過的應(yīng)對方案 過率很高

    1、 你好,你的小程序“xxxxxx”申請的wx.getLocation接口因你提供的申請?jiān)?輔助圖片/網(wǎng)頁/視頻內(nèi)容無法確認(rèn)申請接口使用場景審核不通過,建議修改后重新提交。 2、 你好,你的小程序“xxxxx”申請的wx.getLocation接口因你所描述的小程序接口使用場景,目前未符合接入wx.getL

    2024年02月15日
    瀏覽(24)
  • 微信小程序 - 超詳細(xì)小程序接入騰訊地圖的完整流程,提供地圖顯示、IP 屬地定位、地理位置名稱、獲取經(jīng)緯度等超多功能示例(可一鍵復(fù)制并運(yùn)行的功能源代碼,詳細(xì)的注釋及常見問題匯總)小白直接上手!

    微信小程序 - 超詳細(xì)小程序接入騰訊地圖的完整流程,提供地圖顯示、IP 屬地定位、地理位置名稱、獲取經(jīng)緯度等超多功能示例(可一鍵復(fù)制并運(yùn)行的功能源代碼,詳細(xì)的注釋及常見問題匯總)小白直接上手!

    網(wǎng)上的教程代碼太亂了,第一次接觸的朋友極其難搞,更別說把功能改造移植到自己的項(xiàng)目中去。 本文站在小白的角度, 實(shí)現(xiàn)了微信小程序開發(fā)中,集成騰訊地圖的詳細(xì)流程及使用方法教程,提供了地圖顯示、IP 屬地定位、當(dāng)前定位的地理位置名稱、當(dāng)前定位的經(jīng)緯度等等

    2024年02月16日
    瀏覽(23)
  • 微信小程序定位開發(fā) 逆地理位置查詢 經(jīng)緯度獲取位置名稱

    一. 微信小程序獲取用戶定位==經(jīng)緯度(官方) (1)官方方法:wx.getLocation(Object object) (2)官方鏈接:https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html (3)關(guān)鍵點(diǎn): 申請權(quán)限 :在小程序管理后臺,「開發(fā)」-「開發(fā)管理」-「接口設(shè)置」中申請開通該接口權(quán)限。

    2024年02月16日
    瀏覽(19)
  • uniapp開發(fā)小程序如何獲取用戶地理位置

    uniapp開發(fā)小程序如何獲取用戶地理位置

    1、需求說明 需求:點(diǎn)擊按鈕獲取當(dāng)前微信位置,以及點(diǎn)擊拒絕授權(quán)后,下次點(diǎn)擊還可以拉起授權(quán)窗口; 2、言歸正傳 1、編寫代碼 模板部分 script部分 2、在 manifest.json 新增如下配置 原因:因?yàn)槲⑿判〕绦驈?019年1月14日起新提交發(fā)布的版本若未填寫地理位置用途說明,則將無

    2024年04月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包