场景描述:当在小程序中打开h5页面时,希望小程序的转发出去的标题,图片,跳转link可以通过h5通信实现自定义。

实现方式:通过h5给小程序通信,发送标题,图片,跳转link等信息,让小程序设置分享。

  1. h5发送给小程序通信代码
    引用微信js1.3.2以上才支持,<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
    判断h5是在小程序环境中打开代码:

      //判断是否是小程序环境
    function doMiniProgram(callback) {
    try {
    //小程序环境设置分享
    var ua = window.navigator.userAgent.toLowerCase();
    //判断是否是微信环境
    if (ua.match(/MicroMessenger/i) == 'micromessenger') {
    //微信环境
    wx.miniProgram.getEnv(function (res) {
    if (res.miniprogram) {
    callback();
    }
    })
    }
    }
    catch (ex) {
    console.log(ex);
    }
    }

    给小程序发送数据设置小程序分享:

    //设置小程序分享
    function setMiniProgramShare(shareTitle, imageUrl, shareUrl) {
    try {
    doMiniProgram(function () {
    // 小程序环境下逻辑
    wx.miniProgram.postMessage({ data: { title: shareTitle, path: shareUrl, imageUrl: imageUrl } })
    });
    }
    catch (ex) {
    console.log(ex);
    }
    }
  2. 小程序接收&处理逻辑
    h5页面: <web-view src="{{url}}" bindmessage="message"/>
    js逻辑:
    Page({
    data: {shareData:{}},
    onShareAppMessage(options) {
    return this.shareData
    },
    message (e) {
    var that = this
    console.log(e)
    that.shareData = e.detail.data[0]
    }
    })

最新文章

  1. C#之tcp自动更新程序
  2. 使用 Wireshark 调试 HTTP/2 流量
  3. Win7与Mint双系统安装体验
  4. Java使用for循环打印乘法口诀(正倒左右三角形)
  5. Linux学习笔记(5)Linux常用命令之文件搜索命令
  6. IntelliJ IDEA自动去掉行尾空格
  7. 2016PHP开发者大会
  8. mysql更改root密码及root远程登录
  9. 使用mysqlbinlog工具的基础上及时恢复数据的位置或点
  10. Chapter 2 Open Book——22
  11. 初学者---AngularJS详解
  12. scrapy_全站爬取
  13. [Android] TabLayout设置下划线(Indicator)宽度
  14. vue父子组件及非父子组件通信
  15. Linux下编译安装Apache报APR not found错误的解决办法
  16. Butterknife 导入项目配置
  17. 字节顺序标记BOM
  18. PHP empty(),isset()与is_null()的实例测试
  19. /etc/apt/sources.list.d/ros-latest.list&#39; permission denied
  20. FFmpeg工具使用总结

热门文章

  1. vue中使用iview组件库实现图片的上传
  2. 解决此报错:Cannot create Woodstox XMLInputFactory: java.lang.NoClassDefFoundError: com/ctc/wstx/stax/WstxInput
  3. MySQL比较时间(datetime)大小
  4. maven cmd 命令
  5. CentOS 6.5本地yum源、局域网离线yum仓库(断网情况下轻松安装各种依赖包)
  6. table标签修改tr,td标签的行距
  7. 日志管理与ftp。samba,nfs
  8. 运维开发笔记整理-基于类的视图(CBV)
  9. 【Linux】缺少service命令的解决办法
  10. LeetCode - 83、删除排序链表中的重复元素