uniapp开发微信小程序,选择地理位置uni.chooseLocation

<view @click="toCommunity">点击选择位置</view>
    toCommunity() {const that = thisuni.getSetting({success: (res) => {const status = res.authSetting// 如果当前设置是:不允许,则需要弹框提醒客户,需要前往设置页面打开授权if(!status['scope.userLocation']) {uni.showModal({title: "是否授权当前位置",content: "需要获取您的地理位置,请确认授权,否则地图功能将无法使用",success: (tip) => {if (tip.confirm) {// 如果已经拒绝过,则需要打开设置页面,授权弹框不会弹出第二次,因为已经明确拒绝/确认过了(微信的原因)if (that.isDeny) {wx.openSetting({success: function(res) {// 在设置页面授权成功后再次获取位置信息uni.showToast({title: "授权成功",})that.isDeny = false// 修改授权后返回页面,弹框消失,需要再点一次},fail: (data) => {console.log(data)// isDeny 是否拒绝过授权,如果拒绝过,再点击按钮的话,弹框确认后就直接打开微信小程序设置页that.isDeny = true}})return}// 如果点击了确认,并且没有拒绝过微信系统授权弹框,则会弹出授权位置信息的弹框uni.authorize({scope: "scope.userLocation",success: (data) => {// 授权弹框点击确认console.log(data)// 如果用户同意授权,则打开授权设置页面,判断用户的操作uni.openSetting({success: (data) => {// 如果用户授权了地理信息在,则提示授权成功if (data.authSetting['scope.userLocation'] === true) {uni.showToast({title: "授权成功",icon: "none",duration: 1000})}}})},fail: (data) => {// 如果用户拒绝授权,则提示用户需要授权uni.showToast({title: "您已拒绝授权,请重新授权",icon: "none",duration: 1000})that.isDeny = true}})}}})} else {uni.chooseLocation({success: (res) => {that.formData.village = res.namethat.formData.address = res.addressthat.formData.longitude = res.longitudethat.formData.latitude = res.latitudeconst map = new amapFile.AMapWX({key: 'f037f0a9966f01339818bbe2ec1c6495',})map.getRegeo({location: res.longitude + ',' + res.latitude,success: (data) => {this.formData.sheng = data[0].regeocodeData.addressComponent.provincethis.formData.shi = data[0].regeocodeData.addressComponent.citythis.formData.qu = data[0].regeocodeData.addressComponent.district},})},fail: () => {}})}},fail: () => {that.isDeny = true},})},

在这里插入图片描述

下方列表可以选择地址,选择后点击右上角完成,会返回页面

在这里插入图片描述

    toCommunity() {uni.getSetting({success: function(res) {if (!res.authSetting['scope.userLocation']) { // 如果没有授权定位if (that.isFirstTime) { // 如果是第一次尝试// 弹出提示框询问用户是否授权uni.showModal({title: '提示',content: '需要获取您的地理位置信息',success: function(modalRes) {if (modalRes.confirm) {// 用户点击了确认,尝试请求授权uni.authorize({scope: 'scope.userLocation',success: function() {// 授权成功,调用openMap方法that.openMap()},fail: function() {// 授权失败,可能是用户拒绝了,此时可以打开设置页面that.openSetting()}})}}})that.$store.commit('updateIsFirstTime', false) // 更新为已尝试授权} else {// 用户之前已经拒绝过授权,直接打开设置页面that.openSetting()}} else {// 已经授权,直接调用openMap方法that.openMap()}},fail: function(err) {// 获取设置失败的处理console.error('获取用户设置失败:', err)}})},openSetting() {// 打开设置页面uni.openSetting({success: function(res) {if (res.authSetting['scope.userLocation']) {// 用户在设置页面打开了定位权限this.openMap()}},fail: function(err) {// 打开设置页面失败的处理console.error('打开设置页面失败:', err)}})},openMap() {uni.chooseLocation({success: (res) => {console.log('用户选择的地址:', res)this.formData.village = res.namethis.formData.address = res.addressthis.formData.longitude = res.longitudethis.formData.latitude = res.latitudeconst map = new amapFile.AMapWX({key: 'f037f0a9966f01339818bbe2ec1c6495',})map.getRegeo({location: res.longitude + ',' + res.latitude,success: (data) => {this.formData.sheng = data[0].regeocodeData.addressComponent.provincethis.formData.shi = data[0].regeocodeData.addressComponent.citythis.formData.qu = data[0].regeocodeData.addressComponent.district},})},fail: (err) => {console.log('选择位置失败:', err)}})},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3031951.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Ubuntu永久授权串口设备读取权限‘/dev/ttyUSB0‘】

Ubuntu永久授权串口设备读取权限 1 问题描述2 解决方案2.1 查看ttyUSB0权限&#xff0c;拥有者是root&#xff0c;所属用户组为dialout2.2 查看dialout用户组成员&#xff0c;如图所示&#xff0c;普通用户y不在dialout组中2.3 将普通用户y加入dialout组中2.4 再次查看dialout用…

Baidu Comate 编程插件:提升开发效率的利器

文章目录 引言简介目的 Baidu Comate插件概述定义与功能市场现状竞品分析 安装与配置VsCode 安装&#xff1a;注意事项 版本选择 核心特性详解功能介绍代码生成实时续写错误纠正 使用体验体验地址 引言 简介 基于文心大模型&#xff0c;结合百度积累多年的编程现场大数据和外…

C++运算符重载(操作符重载)

运算符重载 1. 运算符重载基础1.1 运算符重载语法1.2 运算符重载细节补充1.3 更多的运算符重载 2. 重载单目运算符3. 如何直接输入输出对象类型——重载运算符 << 和 >>3.1 单个对象实现 cou <<3.2 多个对象实现 cout<<3.3 右移运算符 输入 cin >&g…

nginx_01

1.安装 yum install epel-release -y # 安装yum的扩展包 yum install nginx -y systemctl start nginx.service #启动nginx systemctl enable nginx.service # netstat -lntup # 查看端口占用情况 # 可以看到nginx默认占用了80端口 2.nginx配置 # 注意配置文件的语法格式…

Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址

Django项目之电商购物商城 – 修改/删除收货地址/设置默认地址 修改和删除收货地址依旧实在user应用下进行 , 其思路和新增收货地址非常相似 依旧是更具前端的数据来写 在这里修改和删除地址的URL是相同的 , 所以我们只要设置一个模型类就可以实现这两个功能 一 . 修改地址…

了解 条码工具 Dynamsoft 在条码读取器中的形态运算

在图像处理中&#xff0c;术语形态学是指分析形状以填充小孔、去除噪声、提取轮廓等的一组操作。形态学操作很像空间卷积中的过滤过程。有两个部分在起作用&#xff1a;结构元素和预定义的计算规则。 点击下载Dynamsoft最新版https://www.evget.com/product/3691/download 结…

每天五分钟计算机视觉:使用极大值抑制来寻找最优的目标检测对象

本文重点 在目标检测领域,当模型预测出多个候选框(bounding boxes)时,我们需要一种方法来确定哪些候选框最有可能表示真实的目标。由于模型的不完美性和图像中目标的重叠性,往往会有多个候选框对应于同一个目标。此时,极大值抑制(Non-Maximum Suppression,NMS)技术就…

关于docker network网络

首先,我们来看看Docker默认的网络模式,即docker0网桥。 每当你安装Docker时,它会创建一个名为docker0的虚拟网桥,并设置一个IP地址范围供它进行端口映射等工作。所有Docker容器在创建时,都会自动连接到这个docker0网桥,并分配一个虚拟IP地址。这样,容器与主机之间,以及容器与容…

【JavaEE精炼宝库】多线程1(认识线程 | 创建线程 | Thread 类)

目录 一、认识线程 1.1 线程的概念&#xff1a; 1.2 为什么需要线程&#xff1a; 1.3 面试题.谈谈进程和线程的区别&#xff1a; 1.4 Java的线程和操作系统线程的关系&#xff1a; 二、创建线程 2.1 创建线程的5种写法&#xff1a; 2.1.1 写法1.继承 Thread 类&#xf…

简单的表单初始密码验证的实现

目录 简单示例&#xff1a;表单初始密码验证 1.1准备工作(图1&#xff09; 1.2 index部分 1.3 css部分 1.3.1先把css部分链接到index.html中&#xff0c;注意链接的地址。 1.3.2添加样式 1.4 JS部分 1.4.1 先把js部分链接到index.html中&am…

大华智能物联综合管理平台 fastjson远程代码执行漏洞复现

0x01 产品简介 大华ICC智能物联综合管理平台对技术组件进行模块化和松耦合,将解决方案分层分级,提高面向智慧物联的数据接入与生态合作能力。 0x02 漏洞概述 由于大华智能物联综合管理平台使用了存在漏洞的FastJson组件,未经身份验证的攻击者可利用 /evo-runs/v1.0/auths/…

块元素、内联元素、行内块元素

一、介绍&#xff1a; CSS元素划分成块元素、行内元素&#xff08;内联元素&#xff09;、行内块元素等多种常用类型。也就是说&#xff1a;在CSS中&#xff0c;元素根据其在页面上的布局方式被分为不同的显示类型。 背景&#xff1a;HTML负责定义网页的结构和内容&#xff0c…

如何利用AI实现文档处理自动化

文件处理在许多企业及员工看来是一项必不可少、却又耗时费力的工作。每天&#xff0c;他们往往需要花费无数个小时去对文件进行分类、归档、以及搜索。不过&#xff0c;如今人工智能&#xff08;AI&#xff09;正在以自动化的方式改变着这些琐碎的工作。 通过利用人工智能&…

H5 云商城 file.php 文件上传致RCE漏洞复现

0x01 产品简介 H5 云商城是一个基于 H5 技术的电子商务平台,旨在为用户提供方便快捷的在线购物体验。多平台适配:H5 云商城采用 H5 技术开发,具有良好的跨平台适配性。无论是在电脑、手机还是平板等设备上,用户都可以通过网页浏览器访问和使用云商城,无需安装额外的应用程…

在做题中学习(56):二维前缀和模板

【模板】二维前缀和_牛客题霸_牛客网 (nowcoder.com) 理解题意&#xff1a; 要求的是(x1,y1) - (x2,y2)这段区间的和。 解法&#xff1a;二维前缀和 1. 和一维前缀和一样&#xff0c;需要有一个同等规模的dp数组&#xff0c;用来保存一段连续区域的和。 在二维dp中&#xff0…

uni-app(三):离线打包与插件引用(Android)

离线打包与插件引用 1.下载Android离线SDK2.使用Android Studio打开离线打包项目并更新Gradle3.解决报错4.构建5.配置AppKeya.查看证书b.申请AppKeyc.配置AppKey 6.生成本地打包App资源7.拷贝App资源到Android项目中8.修改 appid9.修改Android项目配置文件10.下载证书并配置11.…

完美解决Windows10下-更换JDK环境变量后,在cmd下执行仍java -version然出现原来版本的JDK的问题

一、错误场景预演 本人欲将 JDK 1.8 通过安装包的方式升级为 JDK 22。 本地旧版本&#xff1a;1.8.0_221预升级版本&#xff1a;22.0.1 1.1、查看本地旧版本 在配置环境变量之前&#xff0c;首先我们要明确&#xff0c;本地存在旧版本&#xff0c;如果本地没有 Java&#x…

雷森托尔环保科技有限公司见证2024杭州数字供应链装备展潮流

参展企业介绍 青岛雷森托尔环保科技有限公司创建于2018年&#xff0c;位于山东青岛&#xff0c;现注册资本3000万。公司主营生产模压木托盘、化工木托盘、大型设备木包装、出口木托盘、酒柜木酒架等&#xff0c;公司拥有技术人员6人&#xff0c;均为包装设计专业毕业&#xff0…

云南区块链商户平台:抓包技术自制开票工具(二)

前言 上节我们分析了云南区块链商户平台的登录接口以及数据加密、解密&#xff0c;本节我们将构建一个项目框架&#xff0c;将大致的雏形制作出来 说明 由于我们使用开票软件都是在 云南区块链商户平台上操作&#xff0c;如果再开发电脑端就显得没必要&#xff0c;思考良久&…

架构每日一学 4:成为首席架构师,你必须学会顺应人性

本文首发于公众平台&#xff1a;腐烂的橘子 架构师生存法则之二&#xff1a;架构活动需要顺应人性 程序员入行的第一天起就进入了一个机器的世界。在别人的眼中&#xff0c;程序员平时很少说话&#xff0c;更多的时间在和电脑打交道。 程序员工作时间久了大脑会被格式化&…