微信小程序用户后台定位及录音授权及请求示例

目录
  • 官方文档
  • 小程序授权
  • 获取用户授权设置
  • 提前发起授权请求
  • scope 列表
  • 授权有效期
  • 注意事项
  • 后台定位
  • 案例:个人信息getUserInfo
  • 录音等,可以写在onLaunch中

官方文档

<https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html>

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/setting/wx.getSetting.html

小程序授权

1 因为部分功能需要用同意后才能使用。

2 wx.getSetting来判断该用户有没有对接口授权,我判断哪个接口,就必须给wx.getSetting传对应的scope值

一个scope值对应这个一个或多个接口

3 如果我们从wx.getSetting中发现scope值是false,标识没有授权,我们可以通过wx.authorize发起授权,对那个接口授权,就给wx.authorize传对应scope值就可以了。如果用用户同意授权,就可以直接使用对应的接口了。

4 但是scope.userInfo没有办法使用wx.authorize自动弹起弹框。必须要用户手动点击按钮唤起授权弹框。

代码格式:

<button open-type="getUserInfo" bindgetuserinfo="user1">用户信息</button>

我们可以再响应函数的参数中获取用户信息。e.detail,这个和直接调用wx.getUserInfo获取的内容一样。

获取用户授权设置

开发者可以使用 wx.getSetting 获取用户当前的授权状态。

提前发起授权请求

开发者可以使用 wx.authorize 在调用需授权 API 之前,提前向用户发起授权请求。

scope 列表

scope 对应接口 描述
scope.userInfo wx.getUserInfo 用户信息
scope.userLocation wx.getLocationwx.chooseLocation 地理位置
scope.userLocationBackground wx.startLocationUpdateBackground 后台定位
scope.address wx.chooseAddress 通讯地址
scope.invoiceTitle wx.chooseInvoiceTitle 发票抬头
scope.invoice wx.chooseInvoice 获取发票
scope.werun wx.getWeRunData 微信运动步数
scope.record wx.startRecord 录音功能
scope.writePhotosAlbum wx.saveImageToPhotosAlbumwx.saveVideoToPhotosAlbum 保存到相册
scope.camera camera 组件 摄像头

授权有效期

一旦用户明确同意或拒绝过授权,其授权关系会记录在后台,直到用户主动删除小程序。

注意事项

wx.authorize({scope: "scope.userInfo"})  用户信息  的授权必须button用户手动触发弹窗,授权
其他录音等授权,可以直接写在生命周期中,自动弹窗,用户点击授权

wx.authorize({scope: "scope.userInfo"}),不会弹出授权窗口,请使用 ``open-type="getUserInfo"

<button bindgetuserinfo="user1" open-type="getUserInfo">个人信息1</button>

需要授权 scope.userLocation、scope.userLocationBackground 时必须配置地理位置用途说明

后台定位

与其它类型授权不同的是,scope.userLocationBackground 不会弹窗提醒用户。需要用户在设置页中,主动将“位置信息”选项设置为“使用小程序期间和离开小程序后”。开发者可以通过调用wx.openSetting,打开设置页。

案例:个人信息getUserInfo

# wxml文件:
<button bindtap="lu">录音</button>
<button bindtap="user" open-type="getUserInfo">个人信息</button>
<button bindgetuserinfo="user1" open-type="getUserInfo">个人信息1</button>
# js文件:
lu:function(){
    wx.getSetting({
      success(res){
        if (!res.authSetting['scope.record']) {
          wx.authorize({
            scope: 'scope.record',  // 授权的功能
            success() {
              // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
              wx.startRecord()  // 使用接口
            }, fail() {  // 用户不同意进入fail回调
              console.log("你没有授权")
            }
          })
        } else {
          wx.startRecord()  //使用接口
        }
      }
    })
  },
  user: function () {
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.userInfo']) {
          wx.authorize({
            scope: 'scope.userinfo',  // 授权的功能
            success() {
              console.log('进来了')
              wx.startRecord()  // 使用接口
            }
          })
        } else {
          console.log('已经授权了')
          wx.startRecord()  //使用接口
        }
      }
    })
  },
  user1:function(e){
    console.log('e',e.detail)
    wx.getSetting({
      success(res){
        if (res.authSetting['scope.userInfo']){
          wx.getUserInfo({
            success:(res) => {
              console.log('res',res)
            }
          })
        }
      }
    })
  },

录音等,可以写在onLaunch中

App({
  onLaunch: function () {
  // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.record']) {
          // 已经授权,可以直接调用 record 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.record
              // 由于 record 是网络请求,可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })

以上就是微信小程序用户后台定位及录音授权及请求示例的详细内容,更多关于微信小程序用户后台定位及录音授权的资料请关注我们其它相关文章!

(0)

相关推荐

  • uni-app微信小程序登录授权的实现

    微信小程序授权是非常简单和常用的功能,但为了方便,还是在此记录一下要点: 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接口写到该事件里面去 <button class="sys_btn" open-type="getUserInfo" lang="zh_CN" @getuserinfo="appLoginWx&q

  • 微信小程序授权登录的优雅处理方式

    前言 当微信小程序项目中涉及到获取用户信息并实现用户登录时,可以通过微信官方提供的登录能力方便地获取微信的用户身份标识,快速建立小程序内的用户体系.官方文档只是提供如何去调用授权登录,如果直接原封不动的照搬文档来进行代码编写,这样势必会造成代码的维护性差,所以本篇着重介绍如果更优雅的处理微信小程序的授权登录. 授权登录的基本流程 上图是微信小程序官网提供的授权登录基本流程图,这里我只从前端开发的角度来讲解一下该流程. 通过wx.login()获取临时登录凭证code. 通过调用服务端提供的接口把

  • 微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现

    这个接口只能获得一些非敏感信息,例如用户昵称,用户头像,经过用户授权允许获取的情况下即可获得用户信息,至于openid这些,需要调取wx.login来获取. index.wxml <!-- 当已经授权的时候 --> <view wx:if="{{result == 'ok'}}" class="result"> <view class="headimg"> <image src="{{avata

  • springboot+jwt+springSecurity微信小程序授权登录问题

    场景重现:1.微信小程序向后台发送请求 --而后台web采用的springSecuriry没有token生成,就会拦截请求,,所以小编记录下这个问题 微信小程序授权登录问题 思路 参考网上一大堆资料 核心关键字: 自定义授权+鉴权 (说的通俗就是解决办法就是改造springSecurity的过滤器) 参考文章 https://www.jb51.net/article/204704.htm 总的来说的 通过自定义的WxAppletAuthenticationFilter替换默认的UsernameP

  • 微信小程序用户授权获取手机号(getPhoneNumber)

    前言 小程序有一个获取用户很便捷的api,就是通过getPhoneNumber获取用户的已经绑定微信的手机号码.有一点要大家注意,现在微信和注重用户体验,有些方法都是需要用户主动去触发才能调用的,比如getPhoneNumber. 实现思路: 1.通过wx.login获取code,从而获取到用户的openID和sessionKey 2.通过getPhoneNumber获取encryptedData,iv 3.通过参数[encryptedData] .[iv] .[sessionKey]  请求后

  • 微信小程序用户后台定位及录音授权及请求示例

    目录 官方文档 小程序授权 获取用户授权设置 提前发起授权请求 scope 列表 授权有效期 注意事项 后台定位 案例:个人信息getUserInfo 录音等,可以写在onLaunch中 官方文档 <https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html> https://developers.weixin.qq.com/miniprogram/dev/api/open-api

  • 微信小程序 支付后台java实现实例

    微信小程序 支付后台java实现实例 前言: 前些天使用 LeanCloud 云引擎写了个小程序的支付相关 以前只做过 APP 支付 这次在小程序支付爬了两天的坑 把代码也分享出来 支付流程: 1.小程序前端获取微信 openId 以及订单号 传给后台 2,后台根据 openId 和订单号进行签名 post 微信统一下单接口 3.后台获取微信返回的xml字符串 解析 二次签名以后返回给前端 4.前端调起支付微信支付 API 先看支付函数: //获取支付信息 @EngineFunction("ge

  • 微信小程序用户位置权限的获取方法(拒绝后提醒)

    微信小程序获取用户当前位置有三个方式: 1. wx.getLocation(多与wx.openLocation一起用) 获取当前的精度.纬度.速度.不需要授权.当type设置为gcj02 返回可用于wx.openLocation的坐标 2. wx.chooseLocation 需要授权,打开地图选择位置 第一次调用方法时先出现 允许权限之后之后再出现 如果第一次就不允许,则一直调用wx.chooseLocation的fail方法 3. wx.openLocation 需要授权,使用微信内置地图查

  • 微信小程序与后台PHP交互的方法实例分析

    本文实例讲述了微信小程序与后台PHP交互的方法.分享给大家供大家参考,具体如下: 接下来将讲后台如何与前台进行数据及图片之间的交互,相信这一点是很多人所关注的,因为当时我实在团队中负责后台开发,因此对前端不是特别了解,这里我会贴出前端开发时的部分代码截图,微信小程序的官方api介绍地址是: https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-network.html 微信与后台服务器之间的数据通信是调用wx.request(OBJECT)实现的,官

  • golang实现微信小程序商城后台系统(moshopserver)

    golang和c/c++比起来是一门新的语言,一直想学,网上搜集了一些资料,有些人说很容易上手,确实是这样,和C/C++比起来,少了很多乱七八糟的语法.学一门新的语言,最好的方法就是动手写一些东西,最近小程序也比较火,也想学一下,网络上搜索的一些开源项目,基本上没有golang实现的,大部分都是nodejs和java写的,那么我就来实现一个golang版的吧,一石二鸟. 开发小程序前后端都需要开发,自己的前端经验很少,搜索了一些开源代码,有一个小程序项目让人眼前一亮,Nideshop,界面做的不

  • 微信小程序用户登录和登录态维护的实现

    让用户登录,标识用户和获取用户信息,以用户为核心提供服务,是大部分小程序都会做的事情.我们今天就来了解下在小程序中,如何做用户登录,以及如何去维护这个登录后的会话(Session)状态. 在微信小程序中,我们大致会涉及到以下三类登录方式: 自有的账号注册和登录: 使用其他第三方平台账号登录: 使用微信账号登录(即直接使用当前已登录的微信账号来作为小程序的用户进行登录). 第一和第二种方式是目前Web应用中最常见的两种方式,在微信小程序中同样可以使用,但是需要值的注意的是,小程序中没有Cookie

  • 微信小程序 用户数据解密详细介绍

    微信小程序 用户数据解密 官方指引图: 引导图一步一步操作 1.获取code onLoad: function (options) { // 页面初始化 options为页面跳转所带来的参数 let that = this wx.login({ success: function (res) { // success let code = res.code that.setData({ code: code }) wx.getUserInfo({ success: function (res)

  • 微信小程序用户授权,以及判断登录是否过期的方法

    初始界面: 判断用户是否过期(如果未过期则重新登录): 获取用户信息: 获取用户的信息并在前台显示: 主要实现两个功能: ①判断登录是否过期,如果过期则就重新登录,如果没过期就提示未过期 ②获取用户的信息,并在前台显示 index.wxml <button bindtap="login">登录</button> <button bindtap="checksession">登录是否过期</button> <but

  • 微信小程序API—获取定位的详解

    在微信小程序中,我们可以很方便的通过API接口来获取我们当前的位置,接下来我讲告诉大家微信获取定位的API-wx.getLocation的用法,以及我们通过获取定位,得到当地的位置,天气等信息. <view class='content'> <view class='today'> <view class='info'> <view class='temp'>{{weather.temperature.data}}℃</view> <vie

随机推荐