web-view小程序转发功能,web-view和小程序之间传参

web-view的src只能带一个参数src="…?a=1"

h5页面

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

  

var ua = window.navigator.userAgent.toLowerCase();
  if (ua.match(/MicroMessenger/i) == 'micromessenger') {   //判断是否是微信环境
  
//微信环境
wx.miniProgram.getEnv(function (res) {
  if (res.miniprogram) {
    // 小程序环境下逻辑
    //小程序发送信息```
    var info = {
      title: '11', //参数一
      value: '22', //参数二
    };

    wx.miniProgram.postMessage({
      data: info
    });

  } else {
    window.location.href = 'https://www.baidu.com';
    //非小程序环境下逻辑

  }
})
  } else {
    //非微信环境逻辑
    window.location.href = 'https://blog.csdn.net/qq_37235231/article/details/82053062';

  }

  小程序页面

index.wxml页面

<web-view src="{{webUrl}}" bindmessage="msgHandler"></web-view>

  index.js页面

Page({
   msgHandler: function (e) {    //(h5像小程序传递参数)
    console.log(e.detail.data) //获取到来自也页面的数据
     var info = (e.detail.data)[0]
            this.setData({
              value: info.value
            });
            this.setData({
              title: info.title
            });
    },
 onShareAppMessage: function (options) {   //转发时执行
    var that = this;
    console.log(this.data.webUrl);
    return {
      title: that.data.title,
      path: '/pages/index/index?value=' + that.data.value,//小程序像h5传递参数
      success(e) {
        // shareAppMessage: ok,
        // shareTickets 数组,每一项是一个 shareTicket ,对应一个转发对象
        // 需要在页面onLoad()事件中实现接口
        wx.showShareMenu({
          // 要求小程序返回分享目标信息
          withShareTicket: true
        });
      },
    }
  },
  onload:function(options){
    var webUrl = '';
    if (options.value) {//获取转发过来的参数
      webUrl = "https://www.jiquer.com/vity/gdsen.xhtm?value=" + options.value;
    } else {
      webUrl = "https://www.jiquer.com/vity/gdsen.xhtm"
    }
    this.setData({
      webUrl: webUrl
    })
 }
  })

  h5的js页面(获取并处理小程序传递过来的参数)

function getParamer() {

        var url = window.location.href.split("?")[1]; /*获取url里"?"后面的值*/
        if (url) { /*判断是否是一个参数还是多个参数*/
                url = url.split("=")
                return url[1]; /*返回想要的参数值*/
        } else {
                return '';
        }
}

  本文链接:https://blog.csdn.net/qq_37235231/article/details/82053062