uni-app 打包H5腾讯地图无法导航

具体使用扫描二维码查看

前言:

最近几天用uni-app开发安卓和iOS应用,打包成APP安装包后,APP内做地图导航没有问题,APP内使用的是高德地图;但是打包成为H5页面后,运行在微信内置浏览器或者运行在第三方浏览器(UC/QQ浏览器),默认运行的是腾讯地图,地图可以打开,却无法进行导航。

具体错误可查看帖子:https://ask.dcloud.net.cn/question/86216

前置条件:

  1. 开发环境:windows

  2. 开发框架:uni-app , H5+,nativeJS

  3. 编辑器:HbuilderX

4.兼容版本:安卓,IOS已作测试

此代码可以直接复制到uni-app项目中使用

解决方案如下:

1. 放弃uni-app 内置的 uni.openLocation() 方法,直接使用腾讯地图位置组件,

腾讯地图位置展示组件文档:https://lbs.qq.com/webApi/component/componentGuide/componentMarker

2. 进入文档地址后,拉到最底部,有个预览,扫描URL传递数据的二维码,在浏览器打开,将其中的地址复制黏贴出

2.1 扫描二维码后得到的地址:

https://3gimg.qq.com/lightmap/v1/marker/?marker=coord:39.892326,116.342763;title:超好吃冰激凌;addr:手帕口桥北铁路道口&referer=myapp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77

3.准备一个web_view页面,点击查看导航的时候,跳转到web_view页面;

web_view的url地址就是刚才扫描二维码的地址;得到的二维码地址就是步骤2.1的地址。

3.1 uni-app 组件 web_view 具体使用详情,可参考如下文档:

https://uniapp.dcloud.io/component/web-view

4. 具体代码如下:

4.1 点击查看地图的页面vue代码

// 页面 A
<template>
<view>
// view_nav 函数里面传入经纬度,点击view_nav会跳转到web_view页面
<view class="see" @click="view_nav(info.longitude, info.latitude)">查看导航</view>
</view>
</template>
<script>
export default {
view_nav: function(longitude, latitude) {
/**
* 1.页面跳转到web_view页面,页面跳转时候携带一个url参数
* 2.url地址就是上面步骤2.1的地址
* 3.后面的 referer 属性值换为自己的App名称,key属性的值换为自己的腾讯地图申请的key值
**/
uni.navigateTo({
url: '/pages/web_view/web_view?url=https://3gimg.qq.com/lightmap/v1/marker/?marker=coord:'+latitude+','+longitude+'&referer=myApp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77'
})
}
}
</script>

5. web_view页面

<template>
<view>
// 页面A跳转过来携带的url参数
<web-view :src="url"></web-view>
</view>
</template <script>
export default {
data() {
return {
url: ''
};
},
onLoad(e) {
// e.url 就是页面 A 跳转过来携带的url参数
this.url = e.url;
}
};
</script>

至此全代码结束

uni-app H5 腾讯地图无法导航的更多相关文章

  1. H5端调起百度地图、腾讯地图app

    来自一个需求的总结: 在微信公众号中根据地图上的marker和label,或者搜索结果点击调起地图APP进行导航. 一开始是使用百度地图进行开发,后面转腾讯是因为微信不允许不是自家或者合作方的APP在 ...

  2. uniapp H5引入腾讯地图

    在网上搜索了许多关于uniapp引入腾讯地图的方法都以失败告终,我开发的应用主要使用于H5,小程序与H5是不同的sdk,就不在这说了,况且小程序有手把手教学,可参考腾讯地图官网https://lbs. ...

  3. 在H5页面内通过地址调起高德地图实现导航

    项目中用到的一个功能是要通过点击地址来实现打开地图app实现地址导航. 如下图: 实现思路就是在H5页面内通过点击marker图标然后进行当前位置与页面上地址的路程规划与导航. 由于项目中用到的是高德 ...

  4. 在iOS APP中使用H5显示百度地图时如何支持HTTPS?

    现象: 公司正在开发一个iOSAPP,使用h5显示百度地图,但是发现同样的H5页面,在安卓可以显示出来,在iOS中就显示不出来. 原因分析: 但是现在iOS开发中,苹果已经要求在APP中的所有对外连接 ...

  5. H5调用腾讯地图

    获取当前定位的经纬度并在容器内显示当前位置 (安卓上的位置有点偏差) 在vue的index.html中需要引用 template <div id="container" st ...

  6. 微信h5页面调用第三方位置导航

    微信h5页面拉起第三方导航应用 需要准备的: 通过微信认证的公众号有备案过的域名 背景:微信公众号点击菜单栏跳到h5页面,需要用到导航功能 需求:当用户点击导航按钮时,跳转到第三方app进行导航 参考 ...

  7. 地图API使用文档-以腾讯地图为例

    目录 腾讯地图API 2 1.API概览... 2 1.1 WebService API(官网注明是beta版本,可能不稳定,慎用):... 2 1.2 URL API:... 2 1.3 静态图AP ...

  8. ios开发之--条用第三方地图路线导航

    项目里面有位置功能,需要有导航,导航两种实现方式 (集成第三方SDK.URL跳转第三方应用) ,直接集成就不说,下面来说下通过url跳转, 最终效果如如下: 如果手机上安装的有客户端就展示,没有就不展 ...

  9. 移动端app跳转百度地图

    http://lbsyun.baidu.com/index.php?title=uri/guide/helloworld(百度地图调起URI API)开发者只需按照接口规范构造一条标准的URI,便可在 ...

  10. Xamarin.Forms 调用 腾讯地图SDK

    Xamarin.Forms研究了好一段时间了,最近一直在学习中,想尝试一下调用其他的SDK,就如腾讯地图SDK(申请容易). 完成此次项目得感谢以下链接: http://www.cnblogs.com ...

随机推荐

  1. go语言学习 “go.mod file not found”

    遇到问题:安装go 的win安装包后 执行第一个代码: package main import "fmt" func main() { fmt.Println("Hell ...

  2. ρars/ey 题解

    给个链接:ρars/ey. 我们考虑一个树上背包. 设 \(f_{u,i}\) 表示在 \(u\) 号节点的子树内删除 \(i\) 个点的最小代价.显然有答案为 \(f_{1,siz_1-1}\). ...

  3. 从头搭建一个嵌入式web服务器-boa服务器

    一.什么是boa? BOA是一款非常小巧的Web服务器,源代码开放.性能优秀.支持CGI通用网关接口技术,特别适合应用在嵌入式系统中. BOA服务器主要功能是在互联嵌入式设备之间进行信息交互,达到通过 ...

  4. 微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)

    这个接口只能获得一些非敏感信息,例如用户昵称,用户头像,经过用户授权允许获取的情况下即可获得用户信息,至于openid这些,需要调取wx.login来获取. index.wxml <!-- 当已 ...

  5. 处理报错 ResizeObserver loop completed with undelivered notifications.

    // 处理报错 ResizeObserver loop completed with undelivered notifications. export const handlerResizeObse ...

  6. 【原创】VSCode 快捷键汇总(已整理成一张 A4 纸大小,方便打印)

    由于经常记不住 VSCode 的快捷键,每次查找不方便,于是乎做了一份 VSCode 快捷键汇总,已整理成一张 A4 纸大小,方便打印,这样查找就直观多了~ 直接保存图片,横向打印即可.

  7. C# WinForm 解除资源文件的占用并删除

    1.删除未解除占用的资源时 2.调用Windows API函数 解除文件占用 [DllImport("kernel32.dll", SetLastError = true)] [r ...

  8. 【前端js】之小数点保留时的四舍五入问题

    项目遇到金额小数点保留位数,极个别的数会差一分,经调查是因为js的问题. 解决办法: # 方法一:保留两位小数 function keepTwoDecimal(num) { var result = ...

  9. 【GaussDB】应用报错 socket is not closed; Urgent packet sent to backend successfully; An I/O error occured while sending to the backend.detail:EOF Exception;

    数据库原理差异 会话空闲时间超过sesseion_time后,数据库主动断开,客户端再发起请求,就会报此类错误: 当一个会话连接长时间没有执行SQL或者活动时,会将该会话释放,可以释放缓存避免出现例如 ...

  10. 6.13API接口服务类漏洞探针

    ip地址解析:www.x.x.x.com, 对应网站目录为d:/wwwroot/xiaodi/ 而127.x.x.x,对应网站目录为d:/wwwroot/,可能存在网站备份文件zip,所以ip网址端口 ...