微信h5分享

记录h5设置朋友圈和朋友分享的

微信官方地址 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1

第一步绑定域名那些不说了,都一样。

讲讲我这次不同的,因为我是ssr开发,所以和一般的客户端项目略微不同。

写了个引入 的方法

function loadWechatSDK() {
    return new Promise((resolve, reject) => {

    if (document.getElementById("weixin-sdk")) {

      resolve();

      return;

    }

    const script = document.createElement("script");

    script.id = "weixin-sdk";

    script.src = "https://res.wx.qq.com/open/js/jweixin-1.6.0.js";

    script.onload = resolve;

    script.onerror = reject;

    document.head.appendChild(script);

  });

}

我尝试直接script和在nuxt.config.js中head引入这个微信sdk文件均无效,所一用了上述写法

onMounted(async () => {

  try {

    // 加载微信 JS-SDK

    await loadWechatSDK();

    // 获取微信配置

    let href = location.href.split("#")[0];

    shareInfo.value.url = href;

    // 后端配置生成的签名信息接口

    const { data: wechatConfig } = await getShareSignNewApi({ url: href });

    const wxData = JSON.parse(wechatConfig);

    // console.log("🚀 ~ onMounted ~ wxData:", wxData);

    wxAppletData.value = wxData;

    // 初始化微信 JS-SDK

    wx.config({

      debug: false, // 开启调试模式

      appId: wxData.appId,

      timestamp: wxData.timestamp,

      nonceStr: wxData.nonceStr,

      signature: wxData.signature,

      jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"],

    });

    wx.ready(function () {

      // console.log("wx.ready");

      // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

      wx.updateAppMessageShareData({

        title: shareInfo.value.title, // 分享标题

        desc: shareInfo.value.desc, // 分享描述

        link: shareInfo.value.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

        imgUrl:

          "https://chb-site-img.oss-cn-shenzhen.aliyuncs.com/2024/01/11/11111111111_20240111175346A001.png", // 分享图标

        success: function () {

          // 设置成功

        },

      });

      wx.updateTimelineShareData({

        title: shareInfo.value.title, // 分享标题

        link: shareInfo.value.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

        imgUrl:

          "https://chb-site-img.oss-cn-shenzhen.aliyuncs.com/2024/01/11/11111111111_20240111175346A001.png", // 分享图标

        success: function () {

          // 设置成功

          console.log("朋友圈配置成功");

        },

      });

    });

    wx.error(function (res) {

      console.log("微信分享错误信息", res);

    });

  } catch (error) {

    console.log("🚀 ~ onMounted ~ error:", error);

  }

});

这次遇到两个点,第一个就是引入问题,ssr不能用常规那种导入方法或者npm,反正我用npm是没效的。
第二个是h5不支持自定义唤起微信分享。所以上述配置顶多算个配置了微信分享的图标和title以及描述等;也就是微信内部打开网页,然后右上角三个点打开自带的微信分享配置而已。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容