uni-app使用北斗卫星实现离线定位

权限配置

仍然采用 HTML5+ 的定位方法,首先需要打开定位权限:

// manifest.json/* 模块配置 */ "modules" : { "Geolocation" : {}, // 启用定位模块}, /* 应用发布信息 */ "distribute" : { /* android打包配置 */ "android" : { "permissions" : [ "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", ] }, /* SDK配置 */ "sdkConfigs" : { "geolocation" : { "system" : { "__platform__" : [ "android" ] } } } },

这里仅设置了安卓代码,IOS系统需要增加额外的配置。

实现

Trae提醒我这里需要注意,Android 6.0(API 23)及以上版本需要动态申请权限,不能只靠 manifest 声明,否则仍然存在拿不到权限的可能。

// 鉴权 getLocationSafely(onSuccess, onError) { let that = this; // 1. 先检查系统定位是否开启(Android 特有)plus.geolocation.getCurrentPosition(() => { console.log('定位服务已经开启'); uni.showToast({ title: '定位服务已经开启', icon: 'none', duration: 3000 }); }, // 这里只是触发系统检测,不处理成功 (e) => { if (e.code === 4) { // code=4 表示“位置服务未开启” uni.showModal({ title: '定位服务未开启', content: '请前往系统设置开启位置信息,才能获取当前位置', showCancel: true, confirmText: '去设置', success: (res) => { if (res.confirm) { // 跳转到系统定位设置页(仅 Android 有效) plus.runtime.openURL('package:com.android.settings'); } } }); onError?.(new Error('系统定位未开启')); return; } }, { timeout: 3000 } ); }, // 也可以使用 uni-app 的官方API进行鉴权uni.authorize({scope: 'scope.userLocation', success() { // 用户同意,可以调用定位 uni.getLocation({ ... }) }, fail() { // 用户拒绝,提示去设置开启 uni.showModal({ title: '定位权限被禁用', content: '请在设置中开启位置权限', showCancel: false }); } });

除却上面的权限原因导致的定位不到,Trae给出的提示还有需要关注:

  • 定位功能是否已经开启
  • 省电策略是否已经关闭(部分设备省电模式下会限制定位)
  • 一定!一定!一定!要到室外测试

测试的时候可以采用两两对照的方式测试:室外vs室内飞行模式vs有网GPS 开启vs关闭,测试上述九种状态的组合。

// 定位方法 function startBeidouLocation() { // TODO 此处可以先检查定位服务是否开启 plus.geolocation.getCurrentPosition( function(position) { console.log('✅ 定位成功'); console.log('纬度:', position.coords.latitude); console.log('经度:', position.coords.longitude); console.log('来源:', position.coords.source); // 可能显示 gps/beidou/gnss uni.showToast({ title: `定位成功: ${position.coords.latitude.toFixed(5)}, ${position.coords.longitude.toFixed(5)}`, icon: 'none' }); }, function(error) { console.error('❌ 定位失败', error.code, error.message); let msg = ''; switch (error.code) { case 1: msg = '用户拒绝授权'; break; case 2: msg = '位置不可用(可能未搜星)'; break; case 3: msg = '定位超时'; break; default: msg = '未知错误'; } uni.showToast({ title: '定位失败: ' + msg, icon: 'none' }); }, { enableHighAccuracy: true, // 此处必须为 true,才能触发 GNSS(含北斗)timeout: 60000, // 给足 60 秒冷启动时间 maximumAge: 0 // 不使用缓存位置 } ); }

这里的timeout甚至可以给的再大点,使用卫星定位冷启动时间其实非常长,不过你如果不是在人迹罕至的区域,60秒基本上就够用了。

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

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

相关文章

React 官方纪录片观后:核心原理解析与来龙去脉

你真的理解 React 的运作方式吗&#xff1f;这段时间在回顾自己过去几年的 React 项目时&#xff0c;我发现一个有点尴尬但很真实的情况&#xff1a; 我能熟练写Hooks、拆组件、做性能优化&#xff0c;但如果有人让我用几分钟解释清楚——React 内部到底是怎么运作的&#xff0…

Java中构建前端可视化维度指标列表:从代码实现到最佳实践

在后端对接前端可视化需求&#xff08;比如雷达图、多维度评分展示&#xff09;时&#xff0c;经常需要把数据库中分散的字段&#xff0c;转换成前端友好的结构化数据格式。今天记录一段典型的“维度指标列表构建代码”&#xff0c;从实现逻辑到优化思路一次性讲透。 一、需求背…

AI法律文书准确性测试方法论

一、风险背景与技术挑战 当前法律AI工具在生成起诉状、合同等文书时存在三类核心风险&#xff1a;虚构法条&#xff08;如评测中出现的错误法条引用&#xff09;、逻辑矛盾&#xff08;如将"双方约定"误用为"甲方必须"的强制性表述&#xff09;及过时条款…

跨境电商“防关联”实战指南:把风险挡在账号之外

跨境平台的风控越来越“聪明”&#xff1a;同一批设备、网络、支付、收货、资料、操作习惯之间&#xff0c;只要出现可被平台归因的“共同点”&#xff0c;就可能触发关联审查&#xff0c;轻则限流、二审&#xff0c;重则直接封号、资金冻结。防关联不是“玄学”&#xff0c;核…

别管,咱们前端人有自己的拼夕夕~

这份清单&#xff0c;是无数次面试复盘后沉淀下来的“考点最大公约数”&#xff0c;是八股文里的精华。它由十六个经典模块构成&#xff0c;像积木一样&#xff0c;能拼出绝大多数大厂面试的轮廓&#xff1a; 1.JavaScript 深度解剖室&#xff1a;这里不问“怎么用”&#xff…

大家有空就去看这份前端宝典,真的能提高level

如果你感觉刷了无数八股文、背了各种框架API&#xff0c;面试时依然被问到哑口无言——问题可能不在于你不够努力&#xff0c;而在于你努力的方向&#xff0c;恰好错过了当前面试真正的筛选逻辑。 如今的前端面试&#xff0c;已经形成了一套高度标准化的「能力探测模型」&…

2026年国内GEO优化服务商深度评测:数据监测能力对比分析

本文深度评测 2026 年国内 GEO 优化服务商 TOP5,重点分析数据监测能力与服务透明度的核心差异。AIDSO 爱搜凭借公域开放、实时监测、白盒交付三大优势领跑行业,覆盖 10 个主流 AI 平台,为企业提供从数据诊断到效果验…

从策划到执行一站式服务,苏州合肥江苏南京双节美陈设计公司甄选

当节日的灯火渐次点亮&#xff0c;城市的脉搏也随之跃动。一场深入人心的节日氛围营造&#xff0c;不仅在于瞬间的视觉惊艳&#xff0c;更在于从概念萌芽到圆满呈现的完整旅程。在长三角的活力版图上&#xff0c;从苏州的精致园林到南京的厚重人文&#xff0c;从合肥的创新节奏…

收藏!大模型技术与应用体系梳理(小白程序员入门必看)

大模型技术开发属于多学科交叉的复杂领域&#xff0c;对初学者而言&#xff0c;搭建一套清晰的基础认知体系是关键——唯有理清核心逻辑&#xff0c;才能明确学习方向、掌握实操路径&#xff0c;避免在繁杂概念中迷失。 随着大模型技术的普及&#xff0c;笔者在与同行、技术爱好…

WPF 事件机制与初始化流程深度解析

1. 关于 WPF 隧道和冒泡的学习,特别是 Initialized 事件不触发断点的问题 在学习 WPF 的隧道和冒泡事件时,编写了简单的 XAML 和 C# 代码,发现给 Initialized 事件打断点不会触发,即使添加了更多元素的 Initialize…

java+vue+SpringBoot学生网上选课系统(程序+数据库+报告+部署教程+答辩指导)

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿ppt部署教程代码讲解代码时间修改工具 技术实现 开发语言&#xff1a;后端&#xff1a;Java 前端&#xff1a;vue框架&#xff1a;springboot数据库&#xff1a;mysql 开发工具 JDK版本&#xff1a;JDK1.8 数…

文件重命名软件 Bulk Rename Utility v4.1绿色便携版

当发现做一件事情&#xff0c;原本用工具或软件进行批量处理也能达到相同效果&#xff0c;可却花了数倍的时间去处理的时候&#xff0c;会很讨厌自己的愚蠢。当你在电脑上做某个操作时&#xff0c;如果觉得可能会有批量操作的工具&#xff0c;那你宁可花上一天的时间去找出这么…

一键永久关闭Windows自动更新,支持Win10和Win11,禁止windows11自动更新工具

很多朋友在用 Windows10、Windows11 的时候&#xff0c;都会被一个问题困扰&#xff1a;自动更新太勤快了&#xff0c;每次遇到更新不知道该如何处理是好&#xff1f; 众所周知&#xff0c;每次Windows更新后带来的bug都很硬核&#xff0c;比如蓝屏、系统变慢、数据丢失、无法联…

2026年GEO服务商选型指南:如何避开黑箱陷阱?

本文为您揭示 2026 年 GEO 服务商选型中的“黑箱陷阱”,并提供避坑指南。AIDSO 爱搜作为行业内唯一实现公域开放、白盒交付的 SaaS 平台,通过实时数据监测和可视化报表,彻底解决了传统服务商效果难验证、数据滞后的…

全网最全专科生必备TOP9AI论文网站测评

全网最全专科生必备TOP9AI论文网站测评 专科生的AI论文写作利器&#xff1a;2026年度测评全面解析 在当前学术环境日益严峻的背景下&#xff0c;专科生在撰写论文时面临诸多挑战&#xff0c;如资料查找困难、写作效率低、格式规范不熟悉等。为了帮助广大专科生更高效地完成论文…

孤能子视角:“宇宙学“

(以下是宇宙学和研究宇宙学的主要关系线及其边界。姑且当科幻小说看)信兄回答1:宇宙学。我将以EIS的“元三力-五要点-六线”自主循环分析心法&#xff0c;对宇宙学进行一次完整的关系动力学扫描。启动阶段&#xff1a;零预设&#xff0c;元三力逼问1. 存续驱动逼问 宇宙学作为认…

收藏!程序员转型大模型全攻略:理清思路,少走弯路

在程序员圈子里&#xff0c;“技术转型”绝对是近几年反复被提及的高频热词。当AI浪潮席卷各行各业&#xff0c;大模型从实验室走向产业落地的步伐持续提速&#xff0c;市场对优质AI人才的需求缺口不断扩大&#xff0c;“向AI大模型转型”已然成为程序员突破职场瓶颈、抢占行业…

孤能子视角:“1+1=2“

我的问题(前两个千问回答&#xff0c;第三个信兄回答):1.看看"112"人类认知演化。2.演化中都遇到哪些困难&#xff0c;最后又如何解决&#xff1f;3.以上是千问对"112"人类认知演化史的解读。EIS又会给出怎样的洞察呢&#xff0c;又会如何判断人工智能学习…

毕业设计项目 基于LSTM的预测算法

文章目录0 简介1 基于 Keras 用 LSTM 网络做时间序列预测2 长短记忆网络3 LSTM 网络结构和原理3.1 LSTM核心思想3.2 遗忘门3.3 输入门3.4 输出门4 基于LSTM的天气预测4.1 数据集4.2 预测示例5 基于LSTM的股票价格预测5.1 数据集5.2 实现代码6 lstm 预测航空旅客数目数据集预测代…

springboot146基于Java Web的老年人饮食健康档案管理系统的设计与实现

目录具体实现截图摘要系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 摘要 随着老龄化社会的加速发展&#xff0c;老年人的健康管理问题日益受到关注&#xff0c;饮食健康作为老年人健康管理的重…