收藏
回答

vue做微信公众号updateTimelineShareData微信电脑端打开提示函数未实现?

问题类型:BUG

框架类型:微信公众号

API:wx.updateAppMessageShareData、wx.updateTimelineShareData

微信版本号:2.8.0.133

JSSDK:weixin-js-sdk^1.4.0-test

问题描述:提示updateAppMessageShareData和updateTimelineShareData未实现,但实际分享这个设置却是成功了。

/**
 * 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
 * @param title 分享标题
 * @param imgUrl 分享图标
 * @param link 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
 * @returns {Promise}
 */
export function updateTimelineShareData(
  title,
  imgUrl,
  link = location.href.split("#")[0]
) {
  return new Promise((resolve, reject) => {
    initWxConfig().then(() => {
      wx.updateTimelineShareData({
        title: title, // 分享标题
        link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl: imgUrl, // 分享图标
        success: function() {
          // 设置成功
          resolve();
        },
        fail: function(e) {
          const msg = e.errMsg || "未知错误";
          cAlert(msg);
          reject(new Error(msg));
        }
      });
    });
  });
}

/**
 * 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
 * @param title 分享标题
 * @param desc 分享描述
 * @param imgUrl 分享图标
 * @param link 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
 * @returns {Promise}
 */
export function updateAppMessageShareData(
  title,
  desc,
  imgUrl,
  link = location.href.split("#")[0]
) {
  return new Promise((resolve, reject) => {
    initWxConfig().then(() => {
      wx.updateAppMessageShareData({
        title: title, // 分享标题
        desc: desc, // 分享描述
        link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl: imgUrl, // 分享图标
        success: function() {
          // 设置成功
          resolve();
        },
        fail: function(e) {
          const msg = e.errMsg || "未知错误";
          cAlert(msg);
          reject(new Error(msg));
        }
      });
    });
  });
}
/**
 * 显示微信公众号分享, 默认隐藏分享类
 */
export function showMenu(
  menuList = [
    "menuItem:share:appMessage",
    "menuItem:share:timeline",
    "menuItem:favorite"
  ]
) {
  return new Promise(resolve => {
    initWxConfig().then(() => {
      wx.showMenuItems({
        menuList: menuList // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
      });
      resolve();
    });
  });
}

调用API

showMenu().then(() => {
  this.share();
});

share() {
  updateAppMessageShareData(
    title,
    desc,
    img,
    href
  );
  updateTimelineShareData(
    title,
    img,
    href
  );
}
最后一次编辑于  2020-04-17
回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容
问题标签