微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度高德导航页、返回web-view页)

这篇具有很好参考价值的文章主要介绍了微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度高德导航页、返回web-view页)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

h5调用微信地图,小程序,地图开发,微信小程序,小程序,前端

一、H5页面地图

h5调用微信地图,小程序,地图开发,微信小程序,小程序,前端

1.H5地图加载

  • 创建容器
<div id="lock_map"></div>
  • 地图家长
var map = new BMap.Map("lock_map");
    var point = new BMap.Point(120.199672, 30.331184);
    map.centerAndZoom(point, 16);
    map.enableScrollWheelZoom(true);

    // 添加定位控件;
    var geolocationControl = new BMap.GeolocationControl({
        anchor: BMAP_ANCHOR_BOTTOM_RIGHT
    });

    geolocationControl.addEventListener("locationSuccess", function (e) {
        getGEO();
    });
    map.addControl(geolocationControl);

    //getGEO();

    //定位;
    function getGEO() {
        var geolocation = new BMap.Geolocation();
        geolocation.getCurrentPosition(function (r) {
            if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                map.clearOverlays();
                //返回当前中心点;
                map.panTo(r.point);
                map.centerAndZoom(r.point, 17);

                //获取半径;
                var radiusLength = 3;
                var keyword = '美食';
                console.log(keyword)

                var x = r.point.lng;
                var y = r.point.lat;
                var newPoint = new BMap.Point(x, y);
                addMaker(newPoint);//标注中心;
                addCircle(newPoint, radiusLength);//范围;
                searchMaker(newPoint, keyword, x, y);//周边标注;

            } else {
                console.log('failed' + this.getStatus());
            }
        }, function (error) {
            console.log(error);
        }, {
            enableHighAccuracy: true,
            timeout: 1000,
            maximumAge: 0
        });
    }

2.标注事件

   function addMaker(point) {
        var marker = new BMap.Marker(point);
        map.addOverlay(marker);

        //监听标注事件;
        marker.addEventListener("click", function () {
            console.log('标注被点击了');
            location.href = 'sub.html';
        });
    }

二、H5返回微信小程序

1.H5页面核心代码

  • 在H5页面引入//res.wx.qq.com/open/js/jweixin-1.6.0.js,建议使用高版本;
 <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>子页面</title>
    <script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
  • 点击返回按钮
<a href="javascript:;" onclick="getNavi(120.199672,30.331184,'米果国际·共赋未来谷','浙江省杭州市拱墅区石桥路293号');">导航到这里</a>
  • 调用微信小程序和H5通用API

判断是否在微信小程序环境中

    var wxApp = false;
    wx.miniProgram.getEnv(function (res) {
        if (res.miniprogram) {
            wxApp = true;
        } else {
            wxApp = false;
        }
    });

h5调用微信地图,小程序,地图开发,微信小程序,小程序,前端

地图调起,再次返回小程序页

 //地图调起,再次返回小程序页
    function getNavi(lng, lat, name, address) {
        if (wxApp) { //小程序环境
            wx.miniProgram.navigateTo({
                url: '/pages/navi/navi?lng=' + lng + '&lat=' + lat + '&name=' + name + '&address=' + address,//跳转回小程序页面,传参
                success: function () {
                    console.log('成功跳回小程序')
                },
                fail: function () {
                    console.log('跳转回小程序页面失败');
                },
            });
        } else {
            window.location.href = 'https://test.com'
        }
    }

2.微信小程序接收传参核心代码

  • 获取H5传递参数的方式为: console.log(options)
  • latitude和longitude必须为数字类型,不支持字符串类型,需要parseFloat进行转换;
  • 调用wx.openLocation接口API进行地图导航调起;
 /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        //console.log(options)
        if (options != undefined) {
            //判断跳转页面;
            if (options.lat != "" && options.lat != undefined) {
                //获取H5传递参数
                let latitude = parseFloat(options.lat)
                let longitude = parseFloat(options.lng)
                let name = options.name
                let address = options.address
                //执行导航页
                wx.openLocation({
                    latitude,
                    longitude,
                    name,
                    address,
                    scale: 18
                })
            }
        } else {
            console.log('lockdatav')
        }
    },

三、开发中遇见的坑

1.wx.openLocation调起地图后需要点击两次返回才到web-view页面

解决方案1:官方问答,未能妥善解决。

解决方案2 在导航跳转页,重新加载了一次web-view页。给用户使用的感觉上是返回了一次。

<web-view src="https://test.com"></web-view>

2.H5无法调用百度定位new BMap.Geolocation对象

是在PC端IDE预览时,经常出现的问题。一般是因为PC端无法正常定位导致的,在真机预览即可。
h5调用微信地图,小程序,地图开发,微信小程序,小程序,前端

3.安卓某些机型无法从H5跳转到小程序

安卓系统打开webview被微信拦截问题:在微信小程序里开发webview h5的时候,配置合法域名,域名备案的情况下,出现了 ios 上正常打开,但是在 Android 手机上出现了被拦截的情况,一般都是因为传参的url中存在中文导致的。

解决方案: encodeURI对汉字进行编码处理。

@漏刻有时文章来源地址https://www.toymoban.com/news/detail-729625.html

到了这里,关于微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度高德导航页、返回web-view页)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 map地图(轨迹)

    allMarkers效果图   废话少说直接上马(最后是我遇到的问题) cover-view是气泡弹窗,可以自定义弹窗,要配合js:customCallout,如果是非自定义的话:callout(可以修改颜色、边框宽度、圆角、边距等)有些属性我没加,还是看官方文档(虽然写的。。) 字段说明: allMarkers:模

    2024年02月13日
    浏览(36)
  • 微信小程序使用地图map (详细)

    直接看代码: 可直接赋值实现,图标可根据自己需要更改 小程序地理定位qqmap-wx-jssdk.js:qqmap-wx-jssdk.js 点击可进行下载里边的 :下载微信小程序JavaScriptSDK

    2024年02月11日
    浏览(37)
  • 微信小程序地图控件Map的简单配置及使用

    .wxml .js .wxss

    2024年02月05日
    浏览(44)
  • 微信小程序 地图map(电子围栏圆形和多边形)

    正常情况下是没有手机上画电子围栏的,公共平台上我也没找到,所以走了一个歪点子,就是给地图添加点击事件,记录点的位置,在画到电子围栏上就是添加电子围栏了,如果只是显示电子围栏就简单了 一、多边形电子围栏  字段说明: bindtapMap:地图点击方法 creatPolygo

    2024年02月13日
    浏览(36)
  • 微信小程序引用Map地图规划制定路径行走并显示路径

    先上个效果图:     第一次写博客,这个功能是最近接触到要使用到,参考了部分博主的思想逻辑,然后自己动手敲写出来,如若侵权,请联系删帖。

    2024年02月11日
    浏览(34)
  • 微信小程序map 之个性化地图(日出日落主题)-----更新

    微信小程序主题有根据日出日落时间切换深色主题,这样白色的地图在小程序中尤为显眼,由此诞生一个新的需求----个性化地图 地图个性化样式组件是腾讯位置服务为开发者提供的地图高级能力,开发者可以在法律允许的范围内,定制背景面、背景线、道路、POI等多种地图

    2024年02月12日
    浏览(26)
  • 基于微信小程序Map标签及高德地图开源方法实现路径导航

            微信小程序自带地图map标签,他是基于canvas画图功能进行的地图渲染,同时依赖微信的getlocation获取经纬度,绘制周边地图。地图上可以标点,画线,查看当地地理信息。但是自带的导航功能模块不能对个人开发者公开。         高德地图提供了基于微信小程

    2024年02月09日
    浏览(35)
  • 微信小程序地图组件利用腾讯地图生成热力图

    由于找遍全网都没有使用过腾讯地图热力图接口的,所以我是靠自己一个个尝试的,所有尝试了很多步骤才做出来,所以很多步骤可能多于,但是我也不知道拿几个步骤才是真正实现热力图的,所以全部都写出来,如果大家有补充的可以在评论区发言。本人水平不足,很多地

    2024年02月10日
    浏览(46)
  • 微信小程序webview嵌入H5页面,返回 UniAppJSBridgeReady,不触发问题

    公司的一个项目,要求用微信小程序实现对pdf文件,预览签字,用的uniapp开发 pdf预览这部分,用的pdf.js插件实现。 由于微信小程序中webview展示页面不能放在项目本地,要求远端请求网页。而且webview会铺满整个页面,导致我的签字按钮只能放在远端的H5页面实现,当时因为偷

    2024年02月15日
    浏览(39)
  • 基于微信小程序地图组件实现行车轨迹

    微信小程序是一款能够开发出各种功能的便捷工具,其中内置的地图组件,为我们提供了强大的地图展示和交互的能力,为我们的开发节约了不少时间和精力。同时,利用微信小程序内置的定时器,我们也能够简单地实现经纬度轨迹移动的效果。 在这个程序中,我们需要用到

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包