h5端获取定位

news/2024/12/22 16:16:13/

第三方api有腾讯、高德、百度,下面简述腾讯位置api

  1. 引入jweixin.js
<script>
// 方法一 把js文件放到自己服务器上
import wx from '@/static/jweixin-1.6.0.js';// 方法二 vue在生命周期中应用
mounted() {const oScript = document.createElement("script");oScript.type = "text/javascript";oScript.src = "https://res2.wx.qq.com/open/js/jweixin-1.6.0.js";oScript.onload = this.wxInit();document.body.appendChild(oScript);
},
methods: {wxInit(){// 配置}
}</script>
  1. 获取位置
// 根路径
uni.setStorageSync('WxCodeUrl', location.href)methods: {async wxInit() {/**这部分是ios兼容问题ios真机中 签名会提示RealURL和URl不一致,原因是ios中会把进入程序的第一个页面当作RealURL从而导致签名失败*/const ua = navigator.userAgent.toLowerCase();let url = window.location.hrefif (/iphone|ipad|ipod/.test(ua)) {url = uni.getStorageSync('WxCodeUrl');}let that = thisawait this.$api.ihosp_regist_wxjsdk({thdAppId: getInitAppId(),url: url}).then(res => {wx.config({debug: false,appId: APPID, // 必填,公众号的唯一标识timestamp: res.timestamp, // 必填,生成签名的时间戳nonceStr: res.nonceStr, // 必填,生成签名的随机串signature: res.signature, // 必填,签名jsApiList: ['getLocation'],});that.waitForWxReady().then(() => {that.getLocation()}).catch((err) => {// 未获取到定位信息 刷新重试console.error(err);})})},waitForWxReady(index) {let that = thisreturn new Promise((resolve, reject) => {if (typeof wx !== 'undefined') {if (wx.ready) {resolve();} else {document.addEventListener('WeixinJSBridgeReady', () => {resolve();});}} else {// wx 对象不存在,可能不处于微信环境中,reject 报错reject(new Error('请在微信环境中打开页面'));}});},getLocation(){wx.checkJsApi({jsApiList: ['getLocation'],success: function (res) {if (res.checkResult.getLocation == false) {uni.showModal({title: '你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!',})return;}}})wx.getLocation({type: 'gcj02',isHighAccuracy: true, // 开启高精度定位highAccuracyExpireTime: 3000, // 高精度定位超时时间(ms),指定时间内返回最高精度,该值3000ms以上高精度定位才有效果success: (res) => {// res.latitude,res.longitude},cancel: function (res) {uni.showModal({title: '用户拒绝授权获取地理位置',})}});}
}

在微信环境下是推荐使用微信api的,用户未开启定位,安卓手机会弹出下图,去设置会跳到用户开启定位的位置。ios因为系统原因是不会弹窗的,鸿蒙4也不会弹出下面框。
高德和百度也都尝试过,在微信环境中体验感并没有微信好用
在这里插入图片描述


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

相关文章

Centos7配置网卡信息及固定IP

找到网卡配置文件 Centos7之后的网卡配置文件统一放在/etc/sysconfig/network-scripts&#xff0c;在这个目录会找到以ifcfg开头的&#xff0c;和本机网卡数量对应的配置文件&#xff0c;如下: 执行该命令,进入该目录: cd /etc/sysconfig/network-scripts 再执行该命令 ll …

vue手把手教学封装分页器

1.vue中前台 <template><div><h6>"start":{{ pageStartEnd.start }},"当前页"&#xff1a;{{ pagenow }}"end":{{ pageStartEnd.end }}</h6><!-- 如果点击上一页按钮&#xff0c;当前页减去1&#xff0c;并且如果当…

对 async/await 的理解

async/await 的理解 async/await 其实是 Generator 的语法糖&#xff0c;它能实现的效果都能用then 链来实现&#xff0c;它是为优化 then 链而开发出来的。从字面上来看&#xff0c;async 是“异步”的简写&#xff0c;await 则为等待&#xff0c;所以很好理解async用于申明一…

固态硬盘 vs 机械硬盘:选择合适的存储方案

随着计算机的快速发展&#xff0c;各种硬件组件如CPU、显卡以及制作工艺都取得了长足的进步&#xff0c;但是磁盘的发展相对较为缓慢&#xff0c;这也导致了磁盘性能在一定程度上限制了计算机的整体性能。为了解决这个问题&#xff0c;固态硬盘应运而生。 那么&#xff0c;我们…

eclipse Java Code_Style Code_Templates

Preferences - Java - Code Style - Code Templates Eclipse [Java_Code_Style_Code_Templates_ZengWenFeng] 2023.08.07.xml 创建一个新的工程&#xff0c;不然有时候不生效&#xff0c;旧项目可能要重新导入eclipse 创建一个测试类试一试 所有的设置都生效了

概念解析 | 合成孔径雷达中运动补偿与自聚焦的关系

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:合成孔径雷达中运动补偿和自聚焦的联系与差别 概念解析 | 合成孔径雷达运动补偿与自聚焦的关系研究 基于二维空变运动补偿的机动平台大斜视SAR稀疏自聚焦方法 一、背景介绍 合成…

【Spring Boot】Spring Boot项目的创建和文件配置

目录 一、为什么要学Spring Boot 1、Spring Boot的优点 二、创建Spring Boot项目 1、创建项目之前的准备工作 2、创建Spring Boot项目 3、项目目录的介绍 4、安装Spring Boot快速添加依赖的插件 5、在项目中写一个helloworld 三、Spring Boot的配置文件 1、配置文件的…

Redis键值设计

1.1、优雅的key结构 Redis的Key虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过44字节不包含特殊字符 例如&#xff1a;我们的登录业务&#xff0c;保存用户信息&#xff0c;其key可以…