小程序授权

大家好,我是IT修真院深圳分院第07期学员,一枚正直善良的web程序员。

今天给大家分享一下,修真院官网 JS-11任务中可能会使用到的知识点:


1.背景介绍


说到这,我们需要先了解一下微信小程序是啥?简单说,它就是一个可以实现之前只能是原生态APP可以实现的效果和功能。比如说,一些酷炫的页面与转场,一些可以直接和手机硬件交互的功能,录音啊,拍视频啊,调用手机的重力感应啊,GPS啊等等。

从目前来讲,APP比手机网页好,手机网页比电脑网页好。手机网页在电脑上看起来还行,但需要我们输入网址域名,这在电脑上还好操作,在手机上,简单是让人抓狂。

虽然APP在体验上非常突出,但需要安装,需要消耗流量,占用手机有限的桌面空间。这种麻烦程序,甚至超出了APP的优势本身。

从这里就能看出微信小程序的好处了

1,不用安装,即开即用,用完就走。省流量,省安装时间,不占用桌面;
2,体验上虽然没法完全媲美原生APP,但综合考虑还是更优;
3,对于小程序拥有者来说,开发成本更低,他们可以更多财力,人力,精力放在如何运营好产品,做好内容本身;
4,对于用户来说,相较于各种APP,微信小程序UI和操作流程会更统一。这也会降低用户的使用难度;
5,对于小程序拥有者来说,相较于原生APP,推广更容易更简单,更省成本。

2.知识剖析


2.1 授权


部分接口需要获得用户授权同意后才能调用。此类接口调用时:
如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
如果用户已授权,可以直接调用接口;
如果用户已拒绝授权,则短期内不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。


获取授权信息

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

wx.getSetting(OBJECT)获取用户的当前设置。
注:返回值中只会出现小程序已经向用户请求过的权限。

Object 参数说明:
success Function 不是必要 接口调用成功的回调函数,返回内容详见返回参数说明。

fail Function 否 接口调用失败的回调函数

complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:
authSetting Object 用户授权结果,其中 key 为 scope 值,value 为 Bool 值,表示用户是否允许授权,详见 scope 列表

示例代码:

wx.getSetting({
  success: (res) => {
    /*
     * res.authSetting = {
     *   "scope.userInfo": true,
     *   "scope.userLocation": true
     * }
     */
  }
})

2.2 scope表


这里介绍8种:用户信息、地理位置、通讯地址、发票抬头、微信运动步数、录音功能、保存到相册、摄像头

用户信息

scope: scope.userInfo
对应接口 wx.getUserInfo

地理位置

scope:scope.userLocation
对应接口wx.getLocation, wx.chooseLocation

通讯地址

scope: scope.address
对应接口wx.chooseAddress

发票抬头

scope:scope.invoiceTitle
对应接口wx.chooseInvoiceTitle

微信运动步数

注:这里需要关注微信运动公众号,来获取用户的信息
scope:scope.werun
对应接口wx.getWeRunData

录音功能

scope:scope.record
对应接口 wx.startRecord

保存到相册

scope.writePhotosAlbum
wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum

摄像头

scope.camera

3.常见问题


如果用户拒绝授权该怎么办?

4.解决方案


fail:function(){
        wx.showModal({
          title: '警告',
          content: '你点击了拒绝授权将无法显示你的位置信息,点击确定重新获取授权。',
          success: function(res){
            if(res.confirm) {
              wx.openSetting({
                success:(res) => {
                  if (res.authSetting["scope.userLocation"]){
                    wx.getLocation({
                      success: function(res) {
                        that.setData({
                          position: res
                        })
                      },
                    })
                  }
                }
              })
            }
          }
        })
      }

当用户拒绝授权时,弹出模态框来引导用户进入设置授权页面

5.编码实战


6.拓展思考

可以在什么地方安置获取授权的按钮?

比如在直播小程序中,可以设置当用户发表评论时,获取用户的头像信息和名称,然后调用发表。

7.参考文献


微信公共平台——授权:https://developers.weixin.qq.com/miniprogram/dev/api/authorize-index.html

用户拒绝授权CSDN:https://blog.csdn.net/qq_28189091/article/details/75417073

8.更多讨论


1、小程序如何实现双向绑定

可以先定义data,然后利用this.setData来更改data值,比如绑定到一个变量上,当变量更改,data也随着更改,实现双向绑定

2、小程序授权后能够实现的功能

比如获取当前位置信息来定位滴滴打车司机与顾客间的位置,或者是请求发票抬头,来快速生成电子发票。还可以利用微信运动步数来实现健康监控。

3、请求授权可以绑定在那些标签上

理论上都可以绑定,但最好是绑定在button上,比较直观,且方便重复点击

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容