uniapp 微信小程序webview载入h5 设置分享

1在H5项目引入微信sdk,比如index.html

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

2、在H5需要通信的地方调用 (判断微信小程序)

wx.miniProgram.getEnv((res) => {
 if (res.miniprogram) {
	wx.miniProgram.postMessage({ data: { merber:{imageUrl:"",path:""} } })
 }
})

3、小程序webview载入h5

在点击右上角三个点时候会触发receiveMessage,然后触发onShareAppMessage

<template>
  <web-view :src="src" @message="receiveMessage"> </web-view>
</template>

<script lang="ts">
export default {
  data() {
    return {
      src: '',
      shareData: {
        imageUrl:'',
      },
    }
  },
  onLoad(e: any) {
    wx.showShareMenu({
      withShareTicket: true,
      menus: ['shareAppMessage'],
      success(res) {
        console.log('mixin share success', res ? JSON.stringify(res) : res)
      },
      fail(err) {
        console.log('mixin share fail', err ? JSON.stringify(err) : err)
      },
    })
  },
  onShow() {
    cfg.mpSrcP = this.srcP
    App.shareData = {}
  },
  onShareAppMessage(res: any) {
    console.log(res)
    if (res.from === 'button') {
      return this.shareData
    }
    if (res.from === 'menu') {
      return this.shareData || {}
    }
  },
  methods: {
    // 监听h5 消息
    receiveMessage(e: any) {
      let arr = e?.detail?.data
      let data = arr && arr.length > 0 ? arr[arr.length - 1] : null
      if (data && data?.merber?.id) {
        url = data?.path ? data.path : '/pages/home/home'
        this.shareData = {
          path: url,
          imageUrl: data?.imageUrl
            ? data.imageUrl
            : 'imageUrl',
          title: data?.title ? data.title : '小程序名字',
          desc: data?.desc ? data.desc : '',
        }
      }
    },
   
  },
}
</script>

<style></style>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

给钱,谢谢!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值