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://www.mzph.cn/pingmian/9908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EXPLORER - Stone Age

一个程式化的包,包含史前建筑、巨石结构、角色、自然资产、工具和各种道具,可以添加到你的游戏中。 包装内容: + 570 资产。 男性和女性角色,包括数十件服装、皮肤和配饰。 - 8 - 预制角色变体 安装后即可直接使用。 - 15 - 包括动画(8个男性动画和7个女性动画),与Mecan…

Swift 函数

函数 一、函数的定义与调用二、函数参数与返回值1、无参数函数2、多参数函数3、无返回值函数4、多重返回值函数5、可选元组返回类型6、隐式返回的函数三、函数参数标签和参数名称1、指定参数标签2、忽略参数标签3、默认参数值4、可变参数5、输入输出参数四、函数类型1、使用函数…

MATLAB算法实战应用案例精讲-【数模应用】信度分析(附python和R语言代码实现)

目录 算法原理 信度系数 信度分析和真分数测量理论 内在信度和外在信度

从零开始搭建Ubuntu CTF-pwn环境

下面就将介绍如何从零搭建一个CTF-pwn环境&#xff08;由于学习仍在进行&#xff0c;故一些环境如远程执行环境还没有搭建的经历&#xff0c;如今后需要搭建&#xff0c;会在最后进行补充&#xff09; 可以在ubuntu官方网站上下载最新的长期支持版本:(我下载的是22.04版本) h…

指针系列三

文章目录 1.字符指针&#xff1a;2.数组指针&#xff1a;3.二维数组传参的本质4.函数指针变量typedef 关键字 5.函数指针数组6.转移表 1.字符指针&#xff1a; 字符指针&#xff0c;也称为字符串指针&#xff0c;是指向内存中的字符或字符串的指针。 在C语言中&#xff0c;字符…

【树莓派4B】如何用树莓派的串口发送数据给单片机

文章目录 查看路由器中的树莓派IProot连接打开vnc远程桌面服务打开win的远程桌面软件输入IP和端口串口发送数据硬件连接树莓派发送 查看路由器中的树莓派IP root连接 打开vnc远程桌面服务 vncserver :1打开win的远程桌面软件 输入IP和端口 192.168.3.33:1输入密码qwer1234后点…

【找子序列“happy”,可不连续型,双指针】

不是每段相遇都有个美好的结局&#xff0c;阿米娅。有很多故事戛然而止&#xff0c;有很多故事让人辗转反侧&#xff0c;另一些......最后只能变成一声长长的叹息。在没有尽头的荒原上&#xff0c;人们相逢&#xff0c;然后走散&#xff0c;但在错身而过的那个瞬间......没有人…

嫁接打印的技术要点

所谓嫁接打印&#xff0c;是一种增减材混合制造的方式。它将已成形的模具零件当作基座&#xff0c;在此基础上“生长”出打印的零件。其中基座通常采用传统加工方式制造&#xff0c;而打印部分则使用专用的金属粉末&#xff0c;通过 3D 打印技术成型。 嫁接打印之所以备受欢迎&…

Docker + Django跨域解决方案

什么是Django Django 是一个开源的高级 Python Web 框架&#xff0c;它鼓励快速开发并遵循可重用和可维护的实践。Django 是在 MTV&#xff08;模型-模板-视图&#xff09;模式的基础上设计的&#xff0c;这个模式类似于但不同于 MVC&#xff08;模型-视图-控制器&#xff09;模…

centos安装mysql-client

直接安装&#xff1a; yum install mysql-community-client报了错误No package mysql-community-client available. 原因&#xff1a;CentOS/RHEL系统默认的软件源中并不包含MySQL软件包&#xff0c;需要通过添加第三方存储库来获取MySQL相关软件 添加源 安装MySQL官方的Yum…

去除夸克-百度云右键菜单上传

去除夸克-百度云右键菜单上传 Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\*\shell\QuarkCloudDrive.upload] [-HKEY_CLASSES_ROOT\Directory\shell\QuarkCloudDrive.backup] [-HKEY_CLASSES_ROOT\Directory\shell\QuarkCloudDrive.upload] [-HKEY_CLASSES_RO…

已解决java.lang.InstantiationError: 实例化错误的正确解决方法,亲测有效!!!

已解决java.lang.InstantiationError: 实例化错误的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 重新编译所有依赖代码 统一库或模块版本 多模块项目的同步更新 总结 问题分析 java.lang.Insta…

springcloudalibaba版本发布说明

版本发布说明 | https://sca.aliyun.com 2.2.x 分支 适配 Spring Boot 为 2.4&#xff0c;Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本按从新到旧排列如下表&#xff08;最新版本用*标记&#xff09;&#xff1a; Spring Cloud Alibaba VersionSpring Cloud…

Nmap基础命令

Nmap&#xff08;Network Mapper&#xff09;是一款开源的网络发现和安全审计工具&#xff0c;用于发现网络上的主机和设备&#xff0c;并确定这些主机上开放的端口和运行的服务。以下是Nmap的一些常用用法和参数&#xff1a; 扫描单个主机或IP地址&#xff1a; nmap <targe…

使用FFmpeg处理RTSP视频流并搭建RTMP服务器实现图片转直播全流程

目录 一、FFmpeg安装与配置教程二、搭建并配置Nginx RTMP服务器三、从RTSP视频流提取帧并保存为图片四、将图片序列转换为视频五、将视频推送为直播流六、将图片序列推送为直播流 在实时音视频领域&#xff0c;我们经常需要处理从各种源&#xff08;如摄像头&#xff09;获取的…

Yolov8目标检测——在Android上部署Yolov8 tflite模型

1. 简介 YOLOv8 是一种用于目标检测的深度学习模型&#xff0c;它是 YOLO&#xff08;You Only Look Once&#xff09;系列的最新版本之一。YOLO 系列因其高效和准确性而在计算机视觉领域非常受欢迎&#xff0c;特别是在需要实时目标检测的应用中&#xff0c;如视频监控、自动…

Jmeter中线程组介绍

1.线程数的意义 Jmeter采用了线程来模拟用户&#xff0c;即1个线程代表1个用户&#xff0c;线程可以简单理解为计算机处理任务时的一个具体执行人。 一个任务可以由多个人&#xff08;线程&#xff09;共同完成&#xff0c;也可以由一个人&#xff08;线程&#xff09;来完成&a…

Fastapi+docker+tortoise-orm+celery

因为项目是后期引入celery,所以导致构建docker的时候只有fastapi的项目&#xff0c;celery的重启比较麻烦 1.docker安装celery pip install celery安装celery的时候注意python版本与celery版本的适配&#xff0c;有些celery的版本不支持python的版本&#xff0c;具体的版本请看…

Ubuntu-22.04使用systemd.mount挂载本地磁盘

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、systemd.mount是什么&#xff1f;二、使用步骤1.增加mount文件2.测试mount文件 三、补充说明总结 前言 挂载磁盘方式我们都知道很多人喜欢在/etc/fstab里面…

网络基础-ICMP协议

ICMP&#xff08;Internet Control Message Protocol&#xff0c; Internet控制消息协议&#xff09; ICMP协议是IP协议的辅助协议&#xff0c;用于在IP网络上发送控制消息&#xff0c;它通常被用于诊断网络故障、执行网络管理任务以及提供一些错误报告&#xff1b;对于收集各…