首页 > 编程知识 正文

uniapp获取定位位置信息,app不能定位怎么设置

时间:2023-05-03 18:33:38 阅读:56268 作者:4084

uni-app定位链接

主要问题是app上android无法获取定位信息

做法:

uni.get location (type : ' WGS 84 ',geocode: true,success:function(RES ) { console.log )当前位置的经度: ' RES.log 控制台. log (当前位置纬度) res.latitude ); console.log (位置信息: ) RES.address ); }; ); 注意:H5浏览器中获取定位同样失败

H5 )国产安卓手机,如果H5无法定位,手机是否打开位置服务、GPS,ROM是否赋予该浏览器位置权限,浏览器根据网页弹出请求定位的查询框

H5 )如果Android智能手机的本机App中嵌入了H5,则无法确定本机App需要处理Webview的位置。

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

H5: 移动端浏览器普遍仅支持GPS定位

H5: PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。

H5 )微信公众号可以使用微信JS。 详情请参阅

h5:2.9.9升级alpha,优化uni.getLocation以支持IP定位。 默认情况下,通过获取位置获取。 如果检索失败,备选方案将在IP位置检索,并使用内置公共密钥。 如果想正确使用,请填写普通的密钥。 不想用的话,填写错误的密钥就可以了。 key配置: manifest.json — H5配置-位置和地图— key。使用地图和定位相关需要在腾讯地图开放平台申请密钥,填写在 manifest.json 中。

App :组件默认为国家/地区坐标gcj02,如果调用uni.getLocation并将结果传递给组件,则必须将type指定为gcj02。

APP :定位和映射是两个东西。 在getLocation中得到位置坐标后,可以在任意地图上展示,例如定位使用黄金,地图使用谷歌的webview版地图。 如果坐标系不同,请注意坐标系的变换。

APP :使用web-view加载地图时,manifest不需要与地图的sdk对齐。

APP :持续定位方案: iOS端可以申请持续定位权限。 请作为参考。 Android在进程被杀死时无法执行代码。 可以使用unipush在服务中激活App,运行透明消息,然后启动App以收集位置。 在Android中,即使自己编写本机插件进行后台过程,也很容易被杀死。 unipush是更合适的方案

applet:API默认不返回详细地址的中文说明。 中文地址需要两种方式。 1、使用高德地图小程序sdk,可以通过APP和微信获取中文地址。 请作为参考。 2、只考虑APP,使用plus.geolocation也可以获取中文地址。 manifest的App SDK配置仅适用于app,不需要在此配置小程序。 3358 www.Sina.com/https://uni app.d cloud.io/API/other/authorize 3358 www.Sina.com /

以上注意事项意味着

1.H5通过https协议2.app打包后,需要引用高德地图(百度不推荐,百度定位偏差大),否则无法获取地址信息)3.模拟之所以能定位,是因为模拟

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

结果:

export function getLocation() { const that = this // #ifdef APP-PLUS plus.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 H5 uni.getLocation({ type: 'gcj02', success: function (res) { uni.setStorageSync('longitude',res.longitude) uni.setStorageSync('latitude',res.latitude) let location = res.longitude + ',' + res.latitude that.$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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。