• H5页面在微信端的分享(分享到朋友圈,好友)


    一、获取基本信息

    找到已有公众号的appid,根据这个appid和url向后端发起请求,拿到配置所需要的参数:timestamp、noncestr和signature。

    二、实现

    1、页面引入JS-SDK文件

    通过script标签,引入微信官网的JS-SDK文件

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

    2、基本配置

    wx.config({
      debug:false,// 是否开启调试模式
      appId:appid,//appid
      timestamp:timestamp,// 时间戳
      nonceStr:noncestr,// 随机字符串
      signature:signature,// 签名
      jsApiList:[
        'onMenuShareTimeline',   
        'onMenuShareAppMessage',   
        'onMenuShareQQ', 
        'onMenuShareWeibo',
            'onMenuShareQZone'
          ]// 需要使用的JS接口列表
        })

    3、使用

    wx.ready(function(){
      // 分享给好友
      wx.onMenuShareAppMessage({
        title:title,// 分享标题
        desc:desc,// 分享描述
        link:link,// 分享链接
        imgUrl:imgUrl,// 分享图标
        success: function(){
          doShareDone()
        },
        cancel:function(){
          doShareCancel()
        }
      })
    // 分享到朋友圈
      wx.onMenuShareTimeline({
        title:title,// 分享标题
        link:link,// 分享链接
        imgUrl:imgUrl,// 分享图标
        success:function(){
          doShareDone()
        },
        cancel:function(){
          doShareCancel()
        }
      })
    })
    // 分享成功回调
    function doShareDone(){
      console.log('分享成功')
    }
    // 取消分享回调
    function doShareCancel(){
      console.log('取消了分享')
    }

    三、调试

    wx.config里的debug字段设置为true时,就可以进行调试。

    调试要用到微信开发者工具,选择公众号网页项目,输入页面地址就可以了。

    四、遇到的问题及解决方案

    微信JS-SDK说明文档的附录5里有大部分问题的解决方案,在这里我列出我遇到的几个上面没有给出解决方案的。

    1、Uncaught TypeError: Cannot read property 'config' of undefined

    解决:html页面单独引入了sdk,并且组件统一也引入了一遍sdk,导致问题,删除其中之一。

    2、Uncaught (in promise) TypeError: Cannot read property 'ready' of undefined

    解决:同问题1。

    3、invalid signature

    解决:如果文档里的方法都没有解决这个问题,还有一种方法,先设置一种最基础的配置,使其config ok,然后再设置一遍自己需要的有各种参数的分享文案,这样能绕过配置,成功分享。说的可能有点拗口,简单点理解就是,页面只要有一个config成功的配置,就可以再继续配置其它分享,哪怕这个分享配置的signature无效。

    与尘埃中开出花朵。
  • 相关阅读:
    Javascript中this关键字详解
    Chrome 中的 JavaScript 断点设置和调试技巧
    将Sublime Text3添加到右键菜单中
    sublime text 3如何安装插件和设置字号
    sublime text 侧边栏样式修改
    JS中关于clientWidth offsetWidth scrollWidth 等的含义
    scrollWidth,clientWidth,offsetWidth的区别
    JS中apply和call的用法
    JS中的call()和apply()方法
    JAVA-初步认识-第四章-函数-Demo练习
  • 原文地址:https://www.cnblogs.com/congfeicong/p/9578681.html
Copyright © 2020-2023  润新知