uni-app获取手机号-获取用户地理位置-根据位置获取经纬度跳转高德

news/2024/11/2 0:34:15/

一.获取手机号

1.获取手机号首先要先登录拿到code,用code去获取session_key

2.获取 code需要知道自己的AppID(小程序ID)和AppSecret(小程序密钥)

3.解密后得到手机号

 登录微信公众平台拿到自己的AppID(小程序ID)和AppSecret(小程序密钥)

 微信公众平台

获取session_key:

          uni.login({success: (loginRes) => {let code = loginRes.codewx.request({url: `https://api.weixin.qq.com/sns/jscode2session?appid=你的appid&secret=你的secret&js_code=${code}&grant_type=authorization_code`,method: 'POST',data: {code: code},header: {'content-type': 'application/json;charset=UTF-8'},success: (res) => {this.sessionkey = res.data.session_key}})}});

解密:引入官方解密开放数据

服务端获取开放数据 | 微信开放文档

 下载之后我们拿到WXBizDataCrypt.js文件把它放在项目中

 import WXBizDataCrypt from "@/js/WXBizDataCrypt.js" 
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">唤起授权手机号</button>
           getPhoneNumber(e) {let pc = new WXBizDataCrypt('你的AppID', this.sessionkey);let data = pc.decryptData(e.detail.encryptedData, e.detail.iv);console.log(data, "解密之后的数据包含手机号")},

二.获取用户地理位置

              uni.chooseLocation({success: function(res) {console.log(res, "获取当前的地理位置");}});

三.根据位置获取经纬度跳转高德

高德地图key获取方法:登录高德开放平台-控制台-应用管理-我的应用(创建新应用并添加key)

高德开放平台 | 高德地图API

 

 

                uni.request({url: 'https://restapi.amap.com/v3/geocode/geo?parameters',method: 'GET',data: {key: '你的高德地图key', address: "杭州市西湖区学院路007号" },success: (res) => {var latlon = res.data.geocodes[0].location.split(',')this.latitude = latlon[0]this.longitude = latlon[1]this.openMap()}})

 跳转到高德地图相应地址

          openMap() {uni.openLocation({latitude: Number(this.longitude),longitude: Number(this.latitude),success: (res) => {console.log(res, 'success');}});},


http://www.ppmy.cn/news/60496.html

相关文章

各SQL引擎的SQL转换过程对比

SQL引擎 参考文档:高级语言的解析过程—解析树 从 MySQL、Oracle、TiDB、CK,到 Hive、HBase、Spark,从关系型数据库到大数据计算引擎,他们大都可以借助 SQL 引擎,实现 “接受一条 sql 语句然后返回查询结果” 的功能。 他们核心的执行逻辑都是一样的,大致可以通过下面…

Java 基础进阶篇(十)—— Java集合详细总结

文章目录 一、集合类体系结构二、Collection系列集合2.1 Collection 集合体系2.2 Collection 集合体系特点2.3 Collection 常用API2.4 Collection 集合的遍历方式2.4.1 方式一&#xff1a;迭代器2.4.2 方式二&#xff1a;foreach&#xff08;增强for循环&#xff09;2.4.3 方式…

Spring事务失效场景

&#xff08;1&#xff09;事务方法所在的类没有加载到容器中&#xff08;未被Spring管理的Bean&#xff09; 如果一个被注解的类不是由Spring容器来创建的&#xff0c;比如手动new对象&#xff0c;那么该类的事务注解则不会生效。可以通过将该类交给Spring容器来解决此问题。 …

【Java】BitSet的使用

BitSet和boolean[]为什么不用boolean[]BitSet相关的API为什么不用boolean[]? boolean[]占用的内存比较大。 以1024个位置为例。 boolean[1024]总共占用1040 bytes,包括对象头等大小。(对象头20bytes) boolean[] bits = new boolean[1024];使用BitSet(1024)的话,总共占用…

搭建Serv-U FTP服务器共享文件外网远程访问「无公网IP」

文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 转载自内网穿透工具的文章&#xff1a;使用Serv-U搭建FTP服务器并公网访问【内网穿透】 1. 前言…

Center-based 3D Object Detection and Tracking 论文学习

论文地址&#xff1a;Center-based 3D Object Detection and Tracking Github 地址&#xff1a;Center-based 3D Object Detection and Tracking 1. 解决了什么问题&#xff1f; 在点云中&#xff0c;3D 目标通常以 3D 框的形式表示。这个表征借鉴于 2D 图像的检测&#xff0…

C#学习教程大纲

以下是C#学习教程的大纲&#xff1a; 第一部分&#xff1a;基础知识 C#简介 什么是C#&#xff1f; C#的历史和发展 C#的特点和优势 开发环境的搭建 安装Visual Studio开发环境 配置开发环境 第一个C#程序 Hello World程序 程序的结构 编译和运行程序 数据类型和变…

鲲鹏昇腾开发者峰会2023举办

[2023年5月6日 广东东莞]今天&#xff0c;以“创未来 享非凡”为主题的鲲鹏昇腾开发者峰会2023在东莞松山湖举办。 鲲鹏产业生态繁荣&#xff0c;稳步发展&#xff0c;正在成为行业核心场景及科研领域首选&#xff0c;加速推动数字化转型&#xff1b;昇腾产业快速蓬勃向上&…