小程序模板網(wǎng)

玩轉(zhuǎn)微信小程序的位置授權(quán)

發(fā)布時(shí)間:2020-05-21 09:39 所屬欄目:小程序開發(fā)教程

背景

日漸增多的小程序需求,必然會(huì)存在形色各異的授權(quán)問題。今天就來跟大家一起學(xué)習(xí)一下如何玩轉(zhuǎn)小程序的位置授權(quán)

位置授權(quán)問題分類

  • 并非必須允許授權(quán):在第一次用戶決策完成后都允許用戶繼續(xù)操作(并非完全依賴位置信息)
  • 必須允許授權(quán):只有授權(quán)才能使用(依賴位置信息的wx小程序)

分類剖析

1.針對需求分類1的情況,在這里就不多說,直接調(diào)用wx.getLocation就可以

2.只有授權(quán)才能繼續(xù)使用的情況

 

 

  • App:用于描述整體程序,需要對應(yīng)用添加地理位置授權(quán),代碼如下
    App({
        config: {
            'permission': {
              'scope.userLocation': {
                'desc': '請開啟位置授權(quán)' // 高速公路行駛持續(xù)后臺(tái)定位
              }
            },
        }
    })
    復(fù)制代碼
  • Page: 處理位置信息的頁面或者區(qū)域
  • wx.getLocation: 不多講解,是小程序的api,使用方法以及實(shí)現(xiàn)效果如下
     Page({
         onLoad () {
             wx.getLocation({
                 success: (res) => {}, // 成功的回調(diào)
                 fail: (err) => {} // 失敗的回調(diào)
             })
         }
     })
    復(fù)制代碼

 

 

  • $invoke('LocationAuthModal', showModal): 通過對LocationAuthModal組件中的方法直接調(diào)用,在頁面中彈出提示彈窗,效果如下(LocationAuthModal組件是我們自定義的彈窗,并且在頁面中引用)

     

  • Button(open-type=”openSetting” bindopensetting=callback): 小程序基礎(chǔ)庫2.3.0版本開始,用戶發(fā)生點(diǎn)擊行為后,才可以跳轉(zhuǎn)打開setting頁面,管理設(shè)置授權(quán)信息。在完成設(shè)置后,在callback中獲取到授權(quán)auth進(jìn)行處理:

    <button  open-type="openSetting" @opensetting="callback">設(shè)置</button>
    復(fù)制代碼
  • callback: 設(shè)置完成后的回調(diào)函數(shù)

  • setting: 小程序的設(shè)置

  • auth: 設(shè)置完成后獲取到的設(shè)置授權(quán)信息

  • auth[“scope.userLocation”] = true:開啟了位置授權(quán)的設(shè)置,可以直接通過wx.getLocation拿到位置信息

  • else: 仍未開啟位置授權(quán),那么根據(jù)我們的需求是不能繼續(xù)讓用戶使用的,所以會(huì)繼續(xù)執(zhí)行$invoke('LocationAuthModal', showModal),強(qiáng)制提醒用戶開啟位置授權(quán)

  • suceeCallback: 成功獲取位置后的回調(diào)函數(shù),用來處理獲取到微信知悉后的操作

說明

  • 文檔中的部分代碼采用微信小程序框架--wepy
  • 開發(fā)過程中使用小程序基礎(chǔ)庫版本為v2.10.1
  •  


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.u-renovate.com/wxmini/doc/course/25243.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢