关于小程序授权地理位置(wx.getLocation + 用户体验)
wx.getLocation 如果用户曾点击过一次 “确认授权” ,
那么再次调用该接口时将不会出现弹出框(可以直接拿到经纬度)
关于用户体验:
在 onLoad 中判断:
如果用户之前“没有触发过“授权地理位置事件,则发起请求授权-----> 如果同意授权,直接拿到经纬度处理逻辑;
如果不同意,则弹出自定义模态框进行提示,如果用户同意就打开setting页面;如果还不同意,就执行默认事件(用户不授权的逻辑)
- wx.getSetting({
- success: function(res){
- if (typeof (res.authSetting['scope.userLocation']) == "undefined") { // 从未触发过授权的情况
- wx.getLocation({ // 用户同意授权地理位置
- success: function (res) {
- that.setData({
- latitude: res.latitude,
- longitude: res.longitude
- });
- that.getShopInfo_nearby(res.latitude, res.longitude);
- },
- fail: function (err) { // 用户拒绝授权地理位置
- wx.showModal({//弹出模态框,询问
- title: '是否授权当前位置',
- content: '如需正常使用本程序,请按确定并在授权管理中选中“地理位置”,然后点按返回即可正常使用。',
- cancelColor: '#f00',
- success: function (res) {
- if (res.confirm) {//同意授权
- wx.openSetting({})
- } else if (res.cancel) {//不同意授权,进行普通查询
- mac = '08:D8:33:7C:5E:5';
- that.getShopInfo(mac);
- }
- }
- })
- }
- })
- }
- }
- })
在 onShow 中:先检查用户授权状态,如果“曾经触发过“地理位置授权事件,但没有确认授权,就弹出自定义模态框进行询问(同意->setting页面; 不同意-> 走不同意的逻辑);
如果授权过了,则直接使用wx.getLocation 获取经纬度拿到经纬度处理逻辑(此时不会再触发弹框)
- wx.getSetting({//检测用户权限
- success: (res) => {
- if (res.authSetting['scope.userLocation'] == false) { // 地理位置授权 触发过但没有授权
- wx.showModal({//弹出模态框,询问
- title: '是否授权当前位置',
- content: '如需正常使用紫燕到家设备,请按确定并在授权管理中选中“地理位置”,然后点按返回即可正常使用。',
- cancelColor: '#f00',
- success: function (res) {
- if (res.confirm) {//同意授权
- wx.openSetting({})
- } else if (res.cancel) {//不同意授权,进行普通查询
- mac = '08:D8:33:7C:5E:5';
- that.getShopInfo(mac);
- }
- }
- })
- } else if (res.authSetting['scope.userLocation'] == true){ // 地理位置授权过了
- wx.getLocation({
- success: function(res) {
- that.getShopInfo_nearby(res.latitude, res.longitude);
- },
- })
- }
- }
- })
1
关于小程序授权地理位置(wx.getLocation + 用户体验)的更多相关文章
- 小程序 获取地理位置-- wx.getLocation
话不多说直接上栗子 //首先声明变量data:{ showLocationAuth:fasle } //这是第一种逻辑实现方式 点击按钮//当第一次点击授权按钮,用户取消授权之后,就会显示 授权当前定 ...
- 小程序授权怎么写 , 用户点击取消授权 调用 wx.authorize
点击获取授权 onLoad: function (options) { console.log("onLoad====="); var that=this; wx.getUserI ...
- 小程序----选择地理位置 ( wx.chooseLocation ) 和 获取地理位置 (wx.getSetting)
问题来了:假如我第一次使用wx.chooseLocation()获取权限被拒绝,然后使用wx.getSetting()来重新获取权限该怎么做呢? 思路:wx.chooseLocation()有fail ...
- 微信小程序获取地理位置授权
微信小程序获取地理位置授权,首先需要在app.json中添加配置: "permission": { "scope.userLocation": { " ...
- 微信小程序API 登录-wx.login(OBJECT) + 获取微信用户唯一标识openid | 小程序
wx.login(OBJECT) 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key).用户数据的加解密通讯需要 ...
- 微信 公众号 小程序 授权 unionid 用户信息 实验总结
-*-*-*-*-*-*-*-*-*--*-*-*-1.小程序通过code获取用户openid的接口,如果用户曾经授权并未过期,或者用户关注过同主体的公众号,会带回unionID,但没有用户头像等信息 ...
- 微信小程序获取地理位置
小程序只支持获取当前位置的经纬度,并不能直接获取到地理名称,需要通过第三方来逆地址解析,这里我选择的是腾讯位置服务 在使用前需要去申请key,这里是地址:https://lbs.qq.com/cons ...
- 微信小程序登录流程及解析用户openid session_key,获取用户信息
为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持.从2018年4月30日开始,小程序与小游戏的体验版.开发版调用 wx.getUserInfo 接口,将无 ...
- 微信小程序+微信管理后台+微信用户前台
代码地址如下:http://www.demodashi.com/demo/15043.html #### 微信小程序+微信管理后台+微信用户前台 #### 产品介绍 基础功能开发:景区微信地图导游.天 ...
随机推荐
- Could not create connection to database server. Attempted reconnect 3 times. Giving up.
报出这个错误,可能原因: 1.检查MySQL数据库服务是否正常(包含检查服务名和密码),如果不正常,修复至正常为止: 2.maven工程中导入的mysql的jar版本和你的MySQL版本不相符,必须相 ...
- Cassandra3在Centos7下启动失败解决办法
Centos7 安装Cassandra启动过程提示失败,查看结果如下所示: [root@xx ~]# systemctl status cassandra ● cassandra.service - ...
- Flutter中极光推送的使用----jpush_flutter
原文地址:https://www.cnblogs.com/niceyoo/p/11095994.html 1.申请极光账号和建立应用 极光推送的官方网址为:https://www.jiguang.cn ...
- k8s记录-国内下载k8s组件镜像
#!/bin/sh ### 版本信息 K8S_VERSION=v1.13.2 ETCD_VERSION=3.2.24 DASHBOARD_VERSION=v1.8.3 FLANNEL_VERSION= ...
- 使用Port Forwarding连接k8s集群的pod(redis、mysql等)
一. 创建Redis的deployment和service 1. 创建Redis deployment redis-master-deployment.yaml apiVersion: apps/v ...
- advanceInstaller安装文件的ICON
修改以下配置 点击icon图标位置可重新选择
- LODOP表格水平居中3(宽度为百分比)
如果一个表格在css样式等中设置了固定的宽度,想要实现表格在纸张中水平居中,可根据固定的宽度设置合适的左边距,如果打印项内容在打印项宽度中居中,可以设置打印项在纸张中居中.方法1:宽度固定,纸张大小固 ...
- Java并发编程核心概念一览
作者博客地址 https://muggle.javaboy.org. 并行相关概念 同步和异步 同步和异步通常来形容一次方法的调用.同步方法一旦开始,调用者必须等到方法结束才能执行后续动作:异步方法则 ...
- 【Spring Boot学习之八】发布打包
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.打jar类型1.指定主程序入口,否则运行报错:没有主清单属性pom.xml: <build> < ...
- 【JavaScript】从 this 指向到 reference 类型
判断"this 指向谁"是个老大难的问题. 网络上有许多文章教我们如何判别,但大多艰涩复杂,难以理解. 那么这里介绍一个非常简单实用的判别规则: 1)在函数[调用]时," ...