微信小程序web-view嵌套的H5页面,导航功能,点击跳出标有目标地的地图

主要功能:用于展示公共场所等地

主要思路: 在H5页面中点击按钮,跳出web-view,进入小程序的某个页面,在这个页面中使用wx.openLocation加载微信地图等操作

在H5页面中

1、index.html页面引入微信依赖

以便于在H5页面中调用wx等官方api

<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

 2、在确定跳转的页面使用官方跳转api

//导航
const guide = () => {
    //获取目标地点经纬度,将经纬度拼接成字符串
    let lnglat = `${applyData.value.jd}, ${applyData.value.wd}`;
    // 调用官方api,跳转至提前在小程序中写好的‘中转页’,拼接参数可参考wx.openLocation可配置参数按    
    需传进去
    wx.miniProgram.navigateTo({
      url: `/pages/map/index?lnglat=${lnglat}&address=${applyData.value.xxdz}`,
    });
};

因为之前已经在index.thml中引入过微信的js,所以此处可放心调用wx.方法,需要在微信开发者工具中微信环境下方可正常使用, 浏览器会报错

在微信小程序中

1、创建地图中转页,在该页面接受参数并调用wx.openLocation

1、在app.json中添加中转页路由

2、在中转页的js文件中编写跳转代码

 

方便粘贴,代码如下:

Page({
  data: {
    isBack: false
  },
  onLoad(options) {
    this.showWxMap(options);
  },
  onHide() {
    this.isBack = true
  },
  onShow() {
    if (this.isBack) {
      wx.navigateBack({
        delta: 1,
      })
      this.isBack = false
    }
  },
  showWxMap(options) {
    const {
      lnglat,
      address = '目的地'
    } = options;
    const [lng, lat] = lnglat.split(',')
    wx.openLocation({
      latitude: Number(lat),
      longitude: Number(lng),
      address,
      scale: 18,
    });
  },
});

 以上代码已经包括了返回刚才web-view页面的方法,可以正常返回你需要导航之前的页面

结束

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值