小程序的授权机制

news/2024/7/8 2:36:26

小程序的授权机制

it修真院小课堂 目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

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.更多讨论 感谢大家观看

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

快来与我一起学习吧~http://www.jnshu.com/login/1/21109035

转载于:https://juejin.im/post/5ae6941ff265da0b934815c9


http://www.niftyadmin.cn/n/1934953.html

相关文章

敏捷AI|NLP技术在宜信业务中的实践「背景篇」

导读:文章围绕基于机器学习的NLP技术在宜信内部各业务领域的应用实践展开,分享这一过程中的相关经验,包括智能机器人在业务支持、客户服务中的探索,基于文本语义分析的用户画像构建,以及NLP算法服务平台化实施思路等。…

[翻译] Google的javascript风格指南中值得注意的13点

写在文章前 这篇文章翻译自13 Noteworthy Points from Google’s JavaScript Style Guide . 如果觉得风格指南的完整版太长的话,这篇文章提取出来了比较值得注意的几点,比如说tab vs space这种堪比咸甜豆腐脑的战争。(还记得美剧硅谷中&#…

BZOJ3573 HNOI2014米特运输

显然确定一个点的权值后整棵树权值确定。只要算出根节点的权值就能知道两种改法是否等价。 乘的话显然会炸&#xff0c;取log即可。map似乎会出一些问题&#xff0c;sort即可。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib&g…

JavaScript 算法之复杂度分析

新的一年&#xff0c;先给大家整理分享一个简单而又重要的知识点&#xff1a;时间复杂度和空间复杂度。因为在前几篇文章中&#xff0c;提到了时间复杂度&#xff0c;也许有些小伙伴还不清楚。&#xff08;ps&#xff1a;希望在我上篇文章留言的那位小伙伴别失望哦&#xff0c;…

Set类初识

先看一下官方文档&#xff1a;set是一个不包含重复元素的 collection。更确切地讲&#xff0c;set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2&#xff0c;并且最多包含一个 null 元素。正如其名称所暗示的&#xff0c;此接口模仿了数学上的 set 抽象。在所有构造方法以及 ad…

css - 选择器

标签选择器 即使用html标签作为选择对象 <style>div{ background:red; }</style><div>s</div>类名选择器 html标签的类名由class属性指定。可以为一个html标签指定多个class类名&#xff0c;每个类名以空格隔开即可。 <style>.box{ background:r…

2018.09.27_练习时的tips

tablecontrol中modify cell creat object tree1(TYPE REF TO CL_GUI_ALV_TREE)时传入参数 NO_HTML_HEADER 传入‘ ’时 输出效果如同top of page。&#xff08;需要在CALL METHOD TREE1->SET_TABLE_FOR_FIRST_DISPLAY 中传入参数IT_LIST_COMMENTARY I_LOGO I_BA…

MATLAB adf检验和kpss检验结果说明

h_adf adftest(Returns); h_kpss kpsstest(Returns); 对于ADF检验&#xff1a;如果结果h0&#xff0c;表示拒绝原假设&#xff0c;数据不平稳; 如果结果h1&#xff0c;表示不拒绝原假设&#xff0c;数据平稳 对于kpss检验则相反