uni-app定位链接

主要遇到的问题,app上android无法获取定位信息,ios可以,模拟器上都可以获取定位,H5浏览器中获取定位同样失败

做法:

uni.getLocation({type: 'wgs84',geocode: true,success: function (res) {console.log('当前位置的经度:' + res.longitude);console.log('当前位置的纬度:' + res.latitude);console.log('位置信息: ' +res.address );}
});

注意:

H5:在较新的浏览器上,H5 端获取定位信息,要求部署在 https 服务上,本地预览(localhost)仍然可以使用 http 协议。

H5:国产安卓手机上,H5若无法定位,检查手机是否开通位置服务、GPS,ROM是否给该浏览器位置权限、浏览器是否对网页弹出请求给予定位的询问框。
H5:安卓手机在原生App内嵌H5时,无法定位需要原生App处理Webview。
H5:移动端浏览器普遍仅支持GPS定位,在GPS信号弱的地方可能定位失败。
H5:PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。
H5:使用地图和定位相关需要在腾讯地图开放平台申请密钥,填写在 manifest.json 中。
H5:微信公众号可使用微信js sdk,详见
H5:2.9.9 alpha升级,优化 uni.getLocation 支持通过 IP 定位。默认通过getLocation获取,如果获取失败,备选方案是通过 IP 定位获取,用的是内置公共的key,如果你想正确使用,就填写正常的key。如果你不想使用,就填写错误的key即可。key配置:manifest.json —> H5配置 —> 定位和地图 —> key。
App:Android由于谷歌服务被墙,或者手机上没有GMS,想正常定位就需要向高德等三方服务商申请SDK资质,获取AppKey。否则打包后定位就会不准。云打包时需要在manifest的SDK配置中填写Appkey。在manifest可视化界面有详细申请指南,详见:https://ask.dcloud.net.cn/article/29。离线打包自行在原生工程中配置。注意包名、appkey、证书信息必须匹配。真机运行可以正常定位,是因为真机运行基座使用了DCloud向高德申请的sdk配置,打包后必须由开发者自己申请。如果手机自带GMS且网络环境可以正常访问google定位服务器,此时无需在manifest填写高德定位的sdk配置。
App: 组件默认为国测局坐标gcj02,调用 uni.getLocation 返回结果传递给 组件时,需指定 type 为 gcj02。
App:定位和map是2个东西。通过getLocation得到位置坐标后,可以在任意map地图上展示,比如定位使用高德,地图使用google的webview版地图。如果坐标系不同时,注意转换坐标系。
App:如果使用web-view加载地图,无需在manifest里配地图的sdk配置。
App:持续定位方案:iOS端可以申请持续定位权限,参考。Android如果进程被杀,代码无法执行。可以使用unipush,通过服务器激活App,执行透传消息,让App启动然后采集位置。Android上,即使自己写原生插件做后台进程,也很容易被杀,unipush是更合适的方案
小程序:api默认不返回详细地址中文描述。需要中文地址有2种方式:1、使用高德地图小程序sdk,在app和微信上都可以获得中文地址,参考。2、只考虑app,使用plus.geolocation也可以获取中文地址。manifest里的App SDK配置仅用于app,小程序无需在这里配置。
可以通过用户授权API来判断用户是否给应用授予定位权限https://uniapp.dcloud.io/api/other/authorize
不同端,使用地图选择时基于的底层地图引擎不一样,如微信小程序和H5是腾讯地图,App和阿里小程序是高德地图,百度小程序是百度地图,详见地图map组件的使用注意事项。app中也可以使用百度定位,在manifest中配置,打包后生效。但app-nvue里只能用百度定位,不能用百度地图。另外选择地图、查看地图位置的API也仅支持高德地图。所以App端如无特殊必要,建议使用高德地图。

以上注意事项意思是:

1.H5必须https协议
2.app打包后,需要引用高德地图(百度不推荐,百度定位偏差较大),否则无法获取地址信息
3.模拟可以定位,是因为模拟器中集成了高德地图

另外H5端获取地址信息,发现通过getLocation获取的地址信息也没那么准确,故通过getLocation获取到经纬度后,去调用高德的反地理坐标的接口,获取到位置信息

结果:

export function getLocation() {const that = this// #ifdef APP-PLUSplus.geolocation.getCurrentPosition(res => {uni.setStorageSync('longitude',res.coords.longitude)uni.setStorageSync('latitude',res.coords.latitude)uni.setStorageSync('locationCity',res.address.city)uni.setStorageSync('locationInfo',res)})// #endif// #ifdef H5uni.getLocation({type: 'gcj02',success: function (res) {uni.setStorageSync('longitude',res.longitude)uni.setStorageSync('latitude',res.latitude)let location = res.longitude + ',' + res.latitudethat.$u.api.getPositionCity({location}).then(res => {if(res.data.status === '1'){uni.setStorageSync('locationCity',res.data.regeocode.addressComponent.city)let locationInfo = {address: {city: res.data.regeocode.addressComponent.city,district: res.data.regeocode.addressComponent.district,poiName: "",province: res.data.regeocode.addressComponent.province,street: res.data.regeocode.addressComponent.streetNumber.street,streetNum: res.data.regeocode.addressComponent.streetNumber.number},addresses: res.data.regeocode.formatted_address,}uni.setStorageSync('locationInfo',locationInfo)}});}});// #endif}

另外:

andorid高德秘钥参考文章:
查看证书信息
可以使用以下命令查看:

cd到证书目录地址下

keytool -list -v -keystore test.keystore
Enter keystore password: //输入密码,回车

会输出以下格式信息:

Keystore type: PKCS12
Keystore provider: SUN    Your keystore contains 1 entry    Alias name: test
Creation date: 2019-10-28
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Serial number: 7dd12840
Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119
Certificate fingerprints:    MD5:  F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5    SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7    SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

https://ask.dcloud.net.cn/article/29

ios: bundleID

uni-app 手机端定位问题相关推荐

  1. uni app 手机端导航栏自定义

    uni app 手机端导航栏自定义 第一步:明确顶部导航栏的构成(手机自带的顶部菜单+开发的顶部菜单栏) 获取手机自带的顶部导航栏 <view class="navigation_ba ...

  2. 5套独立的app手机端模板界面代码

    MobioKit是移动手机端HTML模板,可以很容易创建手机网站布局设计,或者移动App应用.创意设计和神奇的特性将在让你完美的移动项目独一无二的.这个移动端UI工具包包含所有必要的设计,可以创建移动 ...

  3. 一款万能APP下载单页界面,纯HTML+CSS简单大气,适合各类APP/手机端/软件单页下载

    源码介绍 新鲜热乎的刚出炉!!!! 在网上看到一款卖30来块钱的app界面,感觉简单大气,可以适合做app下载单页,手机端介绍页面,功能介绍页面等等单页,忍不住扒下来了,喜欢的拿去! 源码运行环境 h ...

  4. uniapp app手机端视频滑动

    需求要求:app端视频播放可以滑动,记录观看时间 分析:采用swiper中内嵌video方法 遇到的坑 1.直接使用vue页面在APP端不显示,解决:swiper内嵌视频需要使用nvue ,视频需要使 ...

  5. android订餐系统app、android购物商城系统app 手机端+服务器端 mysql数据库,界面简单,功能齐全 安卓购物商城 安卓在线订餐系统

    android订餐系统app.android购物商城系统app 一.简介 该项目可作为毕业设计开发使用,包含项目源代码.数据库.开题报告.毕业论文.答辩ppt等. 毕业设计题目:"基于And ...

  6. 喜鹊儿服务器维护,喜鹊儿APP手机端记录学生课堂行为

    手机贯穿每堂课 服务教学全过程 来源于青果软件  喜鹊儿  1月23日 [痛点一]上课点名太费时,考勤统计太麻烦. [亮点一]使用喜鹊儿,一键签到.简便快捷,自动统计.智能高效! [痛点二]课堂表现记 ...

  7. 初识Framework7,搭建app手机端项目

    写在前面:在Framework7 (以下简称F7)的官方文档中提到"因为Framework7是通过Ajax在不同页面间跳转的,所以你需要启动一个 http 服务器才可以(不要直接打开本地文件 ...

  8. office移动端_微软手机端三合一Office APP开启公测,大家可以下载试试

    不知道大家手机端打开word或者excel的话,用的什么应用?估计不是wps手机版,就是微软的Word.Excel.PowerPoint三件套. wps就不用说了,广告多的飞起.而看这些广告只是为了浏 ...

  9. python手机端下载-Python3,x:如何进行手机APP的数据爬取

    Python3,x:如何进行手机APP的数据爬取 一.简介 平时我们的爬虫多是针对网页的,但是随着手机端APP应用数量的增多,相应的爬取需求也就越来越多,因此手机端APP的数据爬取对于一名爬虫工程师来 ...

最新文章

  1. 中jsp加载不出来layui_为何渔具厂生产不出来钓鱼人理想中的鱼竿呢,厂家说臣妾做不到啊...
  2. 获取浏览器可视区域宽度和高度 兼容主流浏览器
  3. python dns server开源列表 TODO
  4. 实现一个可管理、增发、兑换、冻结等高级功能的代币
  5. JQuery-学习笔记07【高级——JQuery高级案例】
  6. php创建分页类,一个最强的PHP通用分页类
  7. dsa java_将Java转换为python DSA签名
  8. asp写入mysql拿shell_mysql误删数据快速恢复
  9. java case switch面试_Java基础篇——Java中switch case语句用法及注意事项面试题9期
  10. 学习Python的好去处,微信公众号“Python小屋”
  11. 数据:以太坊2.0合约余额新增1.16万ETH
  12. c语言链表学生考勤,(完整word版)学生考勤管理系统
  13. 怎么彻底卸载cad2017_彻底卸载cad2010的方法步骤
  14. 离线浏览工具webdup 可下载网站页面
  15. 物联网的主要特征是什么,目前的主要应用哪些?
  16. 辽宁科技大学计算机与软件工程学院调剂,辽宁科技大学2019年硕士研究生调剂信息...
  17. pdf转换器免费版哪种好用:Aiseesoft PDF Converter Ultimate | 无损转word转Excel转PPT转图片啥都行!!!
  18. Java phantomjs 网页截图
  19. 专访 | Draven:像写代码一样,用树形的结构写文章
  20. 稳健收益,缺你不可—A股优秀的基金和基金经理

热门文章

  1. 洛谷p1598题解记录
  2. 计算机替换字体怎么操作,电脑替换文字怎么操作
  3. 去掉字符串首尾指定字符
  4. 终于解决qq浏览器里面播放video会带自己广告的问题了
  5. JAVA中GUI在Button中设置显示文字时中文乱码问题
  6. Android第三方登录详解2
  7. Android版添加phonegap-百度社会化分享插件教程
  8. 倒排表数据结构、通配符查询、拼写纠正详解
  9. 网狐棋牌游戏平台服务器架构设计分析[转]
  10. 在keil MDK中定义非初始化(noini)变量