Vue H5微信分享功能实现

  • Post author:
  • Post category:vue


微信网页开发/

JS-SDK说明文档


概述

微信JS-SDK是

微信公众平台

面向网页开发者提供的基于微信内的网页开发工具包。

通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

JSSDK使用步骤可以详细查看说明文档


分享接口

请注意,不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限,详细规则请查看:

朋友圈管理常见问题

请注意,原有的

wx.onMenuShareTimeline



wx.onMenuShareAppMessage



wx.onMenuShareQQ



wx.onMenuShareQZone

接口,即将废弃。请尽快迁移使用客户端6.7.2及JSSDK 1.4.0以上版本支持的

wx.updateAppMessageShareData



wx.updateTimelineShareData

接口。


自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)

wx.ready(function () {   //需在用户可能点击分享按钮前就先调用
  wx.updateAppMessageShareData({ 
    title: '', // 分享标题
    desc: '', // 分享描述
    link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    imgUrl: '', // 分享图标
    success: function () {
      // 设置成功
    }
  })
});


自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)

wx.ready(function () {      //需在用户可能点击分享按钮前就先调用
  wx.updateTimelineShareData({ 
    title: '', // 分享标题
    link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    imgUrl: '', // 分享图标
    success: function () {
      // 设置成功
    }
  })
});

1、首先请求接口,通过config接口注入权限验证配置

ps:

接口封装

/**
 * SDK 可以在 index.html 引入 https://res.wx.qq.com/open/js/jweixin-1.6.0.js
 * 也可以下载下来本地引入JS 文件
 */
import wx from "@/utils/WeChat/jweixin-1.6.0";
/**
 * loadWeChatShare 是权限验证接口,需要根据自己的项目接口调整
 * export function loadWeChatShare(params) {
 *   return mGet("/mobile/wechat/share", params);
 * }
 */
import { loadWeChatShare } from "@/api/wechat";

/**
 * config 初始化
 * @param params {object} 其他参数
 * @param callback {function} 回调函数
 */
export function lWeChatConfig(params, callback) {
  loadWeChatShare({
    id: params.id,
    url: params.url || window.location.href.split("#")[0]
  }).then(res => {
    const { data } = res;

    wx.config({
      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
      appId: data.appId, // 必填,公众号的唯一标识
      timestamp: data.timestamp, // 必填,生成签名的时间戳
      nonceStr: data.nonceStr, // 必填,生成签名的随机串
      signature: data.signature, // 必填,签名
      jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"] // 必填,需要使用的JS接口列表
    });

    wx.ready(() => {
      if (callback) callback();
    });

    wx.error(err => {
      console.error("config fail:", err);
    });
  });
}

2、使用 wx.config 注册分享功能

/**
 * 分享接口
 * @param params {Object} config 参数
 * @param data {Object} 分享参数
 * @param callback {Function} 回调函数
 */
export function lWeChatShare(params, data, callback) {
  lWeChatConfig(params, () => {
    console.log("分享标题", data.title);
    console.log("分享描述", data.desc);
    console.log("分享链接", data.link);
    console.log("分享图标", data.imgUrl);

    // 自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)
    wx.updateAppMessageShareData({
      title: data.title, // 分享标题
      desc: data.desc, // 分享描述
      link: data.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: data.imgUrl, // 分享图标
      success: function() {
        callback();
      }
    });

    // 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)
    wx.updateTimelineShareData({
      title: data.title, // 分享标题
      link: data.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: data.imgUrl, // 分享图标
      success: function() {
        callback();
      }
    });
  });
}

3、在页面中调用分享

import { lWeChatShare } from "@/utils/WeChat/jwx";


// 标题、描述、链接、图片地址根据自己的项目调整
lWeChatShare({
  id: this.id
}, {
  title: "微信分享标题",
  desc: "这是微信分享描述",
  link: "https://test.wechat.com?id=1",
  imgUrl: "https://avatar.csdnimg.cn/A/7/A/1_qq_34707272_1577265439.jpg"
},() => {
  console.log("详情页面分享成功");
});

附:

jwx 源码



版权声明:本文为qq_34707272原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。