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

uniapp小程序獲取位置權限(不允許拒絕)

這篇具有很好參考價值的文章主要介紹了uniapp小程序獲取位置權限(不允許拒絕)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

需求

小程序上如果需要一些定位功能,那么我們需要提前獲取定位權限。我們頁面的所有功能后續(xù)都需要在用戶同意的前提下進行,所以一旦用戶點了拒絕,我們應該給予提示,并讓用于修改為允許。

實現(xiàn)

1.打開手機GPS

經過測試發(fā)現(xiàn)即使手機GPS沒有打開,小程序依舊可以獲取定位信息。

const { locationEnabled } = uni.getSystemInfoSync()
if (!locationEnabled) {
  uni.showToast({
    title: '該功能需要手機定位,請打開手機定位后重新進入!',
  })
  return
}

2.獲取小程序定位權限

uniapp配置了獲取位置的權限,uniapp,微信小程序,uni-app,小程序

  1. 首先我們檢查用戶是否開啟了該權限
    //傳一個權限key,則返回true,false判斷是否有該權限
    //傳一個權限key的數(shù)組,返回沒有打開的權限列表
    export async function authIsPass (authValue: string | string[]) {
      try {
        const res = await new Promise((resolve, reject) => {
          uni.getSetting({
            success: (res) => {
              resolve(res)
            },
            fail: (err) => {
              reject(err)
            },
          })
        })
        const { authSetting }: any = res
        if (typeof authValue === 'string') {
          if (authSetting[authValue]) {
            return true
          } else {
            return false
          }
        }
        if (Array.isArray(authValue)) {
          let noPassList: string[] = authValue.filter((key: string) => !authSetting[key])
          if (noPassList.length > 0) {
            return noPassList
          } else {
            return []
          }
        }
      } catch (err) {
        return false
      }
    }
    
    因為抽離成了公共方法,所以會復雜一些,主要就是調用uni.getSetting獲取到所有的設置權限,然后判斷自己所需要的權限是否開啟。

3.進行權限獲取

uni.authorize({
  scope: 'scope.userLocation',
  fail: (res) => {
    uni.showModal({
      title: '使用該功能必須允許位置服務,是否重新授權?',
      showCancel: false,
      success: ({ confirm }) => {
        if (confirm) {
          uni.openSetting({
            success() {
              //重新獲取權限并判斷
              console.log('開啟權限成功')
            },
            fail() {
              console.log('開啟權限失敗')
            },
          })
        }
      },
    })
  },
  success: () => {
    //重新獲取權限并判斷
  },
})

上面代碼主要依靠uni.showModal方法進行權限獲取,如果你之前拒絕過該權限,則直接走fail回調,如果同意則走success回調。拒絕之前使用uni.showModal進行權限提示,并且在確定按鈕綁定uni.openSetting方法重新進行權限設置。

完整邏輯

const setLocationAuth = async () => {
  const { locationEnabled } = uni.getSystemInfoSync()
	if (!locationEnabled) {
	  uni.showToast({
	    title: '該功能需要手機定位,請打開手機定位后重新進入!',
	  })
	  return
	}
  // 判斷用戶是否獲取定位權限
  //authIsPass方法就是上面步驟2的方法
  const flag = await authIsPass('scope.userLocation')
  if (!flag) {
    uni.authorize({
      scope: 'scope.userLocation',
      fail: (res) => {
        uni.showModal({
          title: '使用該功能必須允許位置服務,是否重新授權?',
          showCancel: false,
          success: ({ confirm }) => {
            if (confirm) {
              uni.openSetting({
                success() {
                  setLocationAuth()
                  console.log('開啟權限成功')
                },
                fail() {
                  console.log('開啟權限失敗')
                },
              })
            }
          },
        })
      },
      success: () => {
        setLocationAuth()
      },
    })
    return
  }
  //獲取到定位權限后的操作
}
setLocationAuth()

上面方法,是在vue3 + ts的環(huán)境執(zhí)行的。進入頁面就會立即執(zhí)行setLocationAuth方法,然后走獲取權限的邏輯。如果用戶點擊拒絕則會彈出提醒,用戶點擊確定按鈕后會跳到權限設置頁面進行重新設置。無論他選擇了允許還是不允許,重新回到頁面都會重新執(zhí)行setLocationAuth方法,再次進行判斷。文章來源地址http://www.zghlxwxcb.cn/news/detail-853448.html

到了這里,關于uniapp小程序獲取位置權限(不允許拒絕)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • uniapp微信小程序獲取當前位置信息、經緯度轉換、導航地圖實現(xiàn)

    uniapp微信小程序獲取當前位置信息、經緯度轉換、導航地圖實現(xiàn)

    1、調用接口,官網文檔是這樣寫的 2、將經緯度轉化為位置信息 需要開通騰訊位置服務,開發(fā)者每天有一萬次的免費轉化次數(shù)。開通地址 ?記住當前申請的key值,然后下載微信小程序JavaScriptSDK 然后安全域名設置,在小程序管理后臺?- 開發(fā) - 開發(fā)管理 - 開發(fā)設置 - “服務器域

    2024年02月11日
    瀏覽(94)
  • uniapp微信小程序uni.getLocation獲取位置(經緯度)之逆地址解析獲取城市信息

    uniapp微信小程序uni.getLocation獲取位置(經緯度)之逆地址解析獲取城市信息

    前言: 我好像隱隱約約的記得前幾個月用uniapp開發(fā)微信小程序使用API接口uni.getLocation好像能獲取到城市信息,但是現(xiàn)在只能獲取到經度、緯度了,然后去看了一下uniapp官網發(fā)現(xiàn)僅App端支持......好吧!那可能是我記錯了,也沒關系,竟然能獲取到經度和緯度那我們就使用第三方

    2024年02月10日
    瀏覽(89)
  • uniapp 微信小程序保存圖片到系統(tǒng)相冊(包括獲取手機相冊權限)即拿即用

    uniapp 微信小程序保存圖片到系統(tǒng)相冊(包括獲取手機相冊權限)即拿即用

    1. 代碼,即拿即用 2. 介紹使用到的方法 1. uni.getSetting uniapp官網鏈接: https://uniapp.dcloud.io/api/other/setting.html#getsetting 2. uni.authorize 鏈接:https://uniapp.dcloud.io/api/other/authorize.html#authorize 3. uni.saveImageToPhotosAlbum 鏈接: https://uniapp.dcloud.io/api/media/image.html#saveimagetophotosalbum 4. uni.openSe

    2024年02月11日
    瀏覽(31)
  • uniapp微信小程序獲取屏幕寬高,膠囊按鈕的位置以及Vue3.2在css層獲取邏輯層的數(shù)據

    uniapp微信小程序獲取屏幕寬高,膠囊按鈕的位置以及Vue3.2在css層獲取邏輯層的數(shù)據

    場景:在開發(fā)小程序時需要把使用了固定定位的按鈕放在屏幕的中間,考慮了用?vw ?vh ?% 但是還要減去按鈕寬的一半,所以在這里不適用。以下是uniapp中自帶的獲取屏幕的高寬等數(shù)據,我在這里順便記錄一些其他小知識 1.使用uni.getWindowInfo()? uniapp官網介紹:?uni.getWindowInfo(

    2024年02月12日
    瀏覽(90)
  • uniapp&&微信小程序點擊右上角菜單分享功能權限配置

    uniapp&&微信小程序點擊右上角菜單分享功能權限配置

    個人項目地址:?SubTopH前端開發(fā)個人站 ? (自己開發(fā)的前端功能和UI組件,一些有趣的小功能,感興趣的伙伴可以訪問,歡迎提出更好的想法,私信溝通,網站屬于靜態(tài)頁面) SubTopH前端開發(fā)個人站 https://subtop.gitee.io/subtoph.github.io/#/home 點擊右上角...配置發(fā)送給朋友和分享到朋

    2024年02月09日
    瀏覽(98)
  • 【微信小程序地理位置權限】申請教程

    【微信小程序地理位置權限】申請教程

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

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

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

    1、需求說明 需求:點擊按鈕獲取當前微信位置,以及點擊拒絕授權后,下次點擊還可以拉起授權窗口; 2、言歸正傳 1、編寫代碼 模板部分 script部分 2、在 manifest.json 新增如下配置 原因:因為微信小程序從2019年1月14日起新提交發(fā)布的版本若未填寫地理位置用途說明,則將無

    2024年04月14日
    瀏覽(19)
  • uniapp,小程序獲取定位,打開地圖選擇位置失敗問題

    uniapp,小程序獲取定位,打開地圖選擇位置失敗問題

    場景: 調用api報錯 chooseLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json 說明: 1.以下 8 個接口需完成準入開通流程:getFuzzylocation、getLocation、onLocationChange、chooseAddress、choosePoi、chooseLocation、startLocationUpdate、startLocationUpdateBackground 首先需要開通權限

    2024年02月13日
    瀏覽(19)
  • 微信小程序地理位置權限申請及使用教程

    微信小程序地理位置權限申請及使用教程

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

    2024年02月12日
    瀏覽(22)
  • uniapp 企業(yè)微信側邊欄開發(fā)網頁授權 注入企業(yè)權限 注入應用權限 獲取userid(2)

    uniapp 企業(yè)微信側邊欄開發(fā)網頁授權 注入企業(yè)權限 注入應用權限 獲取userid(2)

    想知道怎么搭建一個企業(yè)微信側邊欄應用的,請移步: https://blog.csdn.net/u013361179/article/details/131936040?spm=1001.2014.3001.5501 1、網頁授權,獲取code 代碼: 里面用到的方法: // 獲取url后參數(shù)code // 刪除URL中指定search參數(shù) 這個時候就會發(fā)現(xiàn),如果你是從企業(yè)微信客戶端側邊欄配置的

    2024年02月12日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包