雷杰人力资源 發表於 2020-8-31 11:00:00

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

<p><span style="font-size: 18px"><strong>uni-app 打包H5腾讯地图无法导航</strong></span></p>
<p><span style="font-size: 18px">具体使用扫描二维码查看</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 18px"><strong><img src="https://mp.weixin.qq.com/mp/qrcode?scene=10000004&amp;size=102&amp;__biz=Mzg3NTAzMzAxNA==&amp;mid=100000209&amp;idx=1&amp;sn=7067d76286cd461d8ddc0ce0bc5f9042&amp;send_time=1598842280"></strong></span></p>
<p><strong>前言:</strong></p>
<p>最近几天用uni-app开发安卓和iOS应用,打包成APP安装包后,APP内做地图导航没有问题,APP内使用的是高德地图;但是打包成为H5页面后,运行在微信内置浏览器或者运行在第三方浏览器(UC/QQ浏览器),默认运行的是腾讯地图,地图可以打开,却无法进行导航。</p>
<p>&nbsp;</p>
<p>具体错误可查看帖子:https://ask.dcloud.net.cn/question/86216</p>
<p><strong>前置条件:</strong></p>
<ol class="list-paddingleft-2">
<li>
<p>开发环境:windows</p>
</li>
<li>
<p>开发框架:uni-app , H5+,nativeJS</p>
</li>
<li>
<p>编辑器:HbuilderX</p>
</li>
</ol>
<p>&nbsp;&nbsp; 4.兼容版本:安卓,IOS已作测试</p>
<p>此代码可以直接复制到uni-app项目中使用</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>解决方案如下:</strong></p>
<p>1. 放弃uni-app&nbsp;内置的&nbsp;uni.openLocation() 方法,直接使用腾讯地图位置组件,</p>
<h2><span style="font-size: 14px">腾讯地图位置展示组件文档:</span><span style="font-size: 14px">https://lbs.qq.com/webApi/component/componentGuide/componentMarker</span></h2>
<p>2. 进入文档地址后,拉到最底部,有个预览,扫描URL传递数据的二维码,在浏览器打开,将其中的地址复制黏贴出</p>
<p><img src="https://img2020.cnblogs.com/blog/1699129/202008/1699129-20200831105814607-67472103.jpg"></p>
<p>&nbsp;</p>
<p>2.1 扫描二维码后得到的地址:</p>
<p><em><strong>https://3gimg.qq.com/lightmap/v1/marker/?marker=coord:39.892326,116.342763;title:超好吃冰激凌;addr:手帕口桥北铁路道口&amp;referer=myapp&amp;key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77</strong></em></p>
<p>3.准备一个web_view页面,点击查看导航的时候,跳转到web_view页面;</p>
<p>web_view的url地址就是刚才扫描二维码的地址;得到的二维码地址就是步骤2.1的地址。</p>
<p>3.1 uni-app 组件 web_view 具体使用详情,可参考如下文档:</p>
<p>https://uniapp.dcloud.io/component/web-view</p>
<p>4. 具体代码如下:</p>
<p>4.1 点击查看地图的页面vue代码</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 页面 A</span>
&lt;template&gt;
&lt;view&gt;
    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> view_nav 函数里面传入经纬度,点击view_nav会跳转到web_view页面</span>
    &lt;view class="see" @click="view_nav(info.longitude, info.latitude)"&gt;查看导航&lt;/view&gt;
&lt;/view&gt;
&lt;/template&gt;
&lt;script&gt;<span style="color: rgba(0, 0, 0, 1)">
export </span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> {
      view_nav: </span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(longitude, latitude) {
      </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
      * 1.页面跳转到web_view页面,页面跳转时候携带一个url参数
      * 2.url地址就是上面步骤2.1的地址
      * 3.后面的 referer 属性值换为自己的App名称,key属性的值换为自己的腾讯地图申请的key值
      *</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
      uni.navigateTo({
          url: </span>'/pages/web_view/web_view?url=https://3gimg.qq.com/lightmap/v1/marker/?marker=coord:'+latitude+','+longitude+'&amp;referer=myApp&amp;key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77'<span style="color: rgba(0, 0, 0, 1)">
      })
      }
}
</span>&lt;/script&gt;</pre>
</div>
<p>5.&nbsp;web_view页面</p>
<div class="cnblogs_code">
<pre>&lt;template&gt;
&lt;view&gt;
    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 页面A跳转过来携带的url参数</span>
    &lt;web-view :src="url"&gt;&lt;/web-view&gt;
&lt;/view&gt;
&lt;/template

&lt;script&gt;<span style="color: rgba(0, 0, 0, 1)">
export </span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> {
    data() {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
      url: </span>''<span style="color: rgba(0, 0, 0, 1)">
      };
    },
    onLoad(e) {
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> e.url 就是页面 A 跳转过来携带的url参数</span>
      <span style="color: rgba(0, 0, 255, 1)">this</span>.url =<span style="color: rgba(0, 0, 0, 1)"> e.url;
    }
};
</span>&lt;/script&gt;</pre>
</div>
<p>至此全代码结束</p><br><br>
来源:https://www.cnblogs.com/ts119/p/13588446.html
頁: [1]
查看完整版本: uni-app H5 腾讯地图无法导航