主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
前言小程序在开发过程中很多地方需要用户授权,需要查询用户是否授权,没有授权引导用户授权。所以我把这个过程打包了,小可爱们可以参考一下,多提建议,共同进步。
流程图有时项目的很多地方都会用到判断用户是否授权的逻辑,所以封装是非常必要的。我们以位置授权为例来说说大致流程。
许多应用程序将允许用户一进入就授权地理位置,他们可以获得用户的经纬度并计算与用户的距离。以下是简单的流程图。
开发需要通过wx.getSettiing()获取用户当前的设置和官方文档。如果您有权限继续下一步操作,如果您没有要求用户再次打开权限,如果您单击“用户”并单击“否”,则授权失败。如果用户同意,则调用wx.openSetting()调出客户端小程序设置界面,并返回用户和官方文档设置的操作结果。打开设置页面后,如果用户没有打开授权就返回,将会得到授权失败的结果。如果打开授权,上一页将授权成功。
这里需要注意的是,下面的代码应该添加到app.json中以获得地理授权。
“权限“:{“范围。user location“:{“desc“:“您的位置信息将用于显示您所在城市的信息“}}复制主代码,在utils文件夹中创建auth.js进行授权操作,然后直接在代码中用两行即可完成!
/* * *微信授权*/const authlist = { userinfo:{ apiname:【‘get userinfo‘】,auth Title:‘‘需要使用您的用户信息‘,auth content:‘‘需要使用您的用户信息,请确认授权‘},user location:{ apiname:【‘获取位置‘,‘选择位置‘】,auth Title:‘‘请求对当前位置进行授权‘,auth content:‘‘需要获取您的地理位置,请确认授权‘},Address:{ apiname:【‘选择地址‘】,auth authtitle:“您的发票需要用于标题”,authContent:“您的发票需要用于标题,请确认授权”},发票:{ apiname:【‘选择发票’】,authtitle:“需要获取您的发票”,authContent:“需要获取您的发票,请确认授权”},我们运行:{ apiname:【‘getwerundata’】,AuthTitle:“需要获取您的微信体育数据”,authContent:“需要获取您的微信体育数据,请确认授权”},write photoalbum:【‘apiname:【‘save image auth content:‘需要使用您的相册,请确认授权‘},}/* * * * *描述:只有小程序已向用户请求的权限才会出现在返回值中* @param {String}权限名称* @return {Boolean}是的,有权限*/constgetwxsetting = key =》{ if(type of key = =‘String‘&! authList【key】)return false return new Promise(function(resolve){ wx . get setting({ success:async RES =》{ var result = res.authsetting//The用户已拒绝if(result【` scope。$ { key } `】= = false)。{//授权指南page _ show modal(key)。然后(()=》{ Resolve()})} else {//已授权,或您尚未授权Resolve()} } })} }/* * @说明:授权设置页面指南* @param {String}权限名称* @return {Boolean}具有权限*/const _ show modal = key =》{ console . log(authList【key】。authContent)返回新的Promise(function(resolve){ wx . show modal({ title:auth list【key】)。authTitle,content:authList【key】。authContent,Success:function(RES){ if(RES . confirm){ wx . open setting({ Success:async data au =》{//async,进入授权页面并返回判断if(data au . auth setting【` scope。$ { key } `】= = true){ wx . show toast({ title:‘授权成功’)。icon:“成功”,持续时间:1000 })resolve()} Else { wx . show toast({ title:“授权失败”,icon:“无”,持续时间:1000 })})//用户单击取消} Else if(RES . Cancel){ wx . show toast({ title:“授权失败”,icon:“无”,持续时间:1000 })})}模块。exports = {getWxSetting}复制代码页js引入auth.js,并调用getWxSetting方法传入auth.js中定义的authList对应的属性名。
//index.js//获取应用程序实例constapp = getapp()constwxapi = require(‘.../.../utils/auth . js’)页面({data: {},//打开地图Open map:function(){ wx API。getwxsetting(“用户位置”)。然后()=》{//无论授权与否,也可以将以下代码提取到公共文件wx.getLocation中({ type:‘WGS 84’,成功:RES =》{ wx . open location({ latitude:RES . latitude,longitude: res.longitude,})},失败:err =》{ wx . show toast({ title:‘检查手机的位置权限’,icon:‘none’,持续时间:2000 })())} 65getwx setting(‘writephotoalbum‘)。然后(()=》{//无论授权与否,下面的代码也可以根据需要提取到公共文件wx . download file({ URL:‘https://imgs.soluti.cn/avatar.png')中。Success:function(RES){ wx . saveimagetophotosalbum({ file path:RES . tempfile path,Success:function(RES){ wx . show toast({ title:‘保存成功’,Icon:‘无’})},Fail:function(err){ wx . show toast({ title:‘保存失败’,Icon:‘无’})})}))65这里的wx.getLocation也可以提取公共文件,这里就不赘述了。
以上就是完美小程序获取用户位置授权的细节描述。更多资讯请关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
- 如何实现小程序发送服务通知(小程序如何主动向用户发送通知)
- 如何获取小程序的unionid(如何获取小程序的页面路径)
- 生成海报的示例小程序(Java后端)(微信小程序生成海报演示)
- 什么是小程序? 有哪些功能?(什么是小程序?有哪些功能?)
- 介绍如何用小程序生成参数二维码(二维码+小程序参数)
本文由主机参考刊发,转载请注明:小程序获得用户位置授权的完美故事(微信小程序获得位置授权) https://zhujicankao.com/101168.html
评论前必须登录!
注册