移动端微信浏览器和普通浏览器分享

599 阅读2分钟

一、微信浏览器分享

ps:微信浏览器不能自定分享,只能通过浏览器右上角三个点去分享,如果要自定义分享的内容,需要先进行微信分享配置。且只有从公众号菜单、微信收藏、气泡连接等方式进入的分享,分享出去的内容才会呈卡片的形式。直接分享,分享出去的会是一个链接

微信分享配置代码

    let res = await getJssdk({ url: link });
    let { appId, timestamp, nonceStr, signature } = res.data;
      wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId, // 必填,公众号的唯一标识
        timestamp: timestamp * 1, // 必填,生成签名的时间戳
        nonceStr, // 必填,生成签名的随机串
        signature, // 必填,签名
        jsApiList: [
          "updateAppMessageShareData", //自定义“分享给朋友”及“分享到QQ”按钮的分享内容
          "updateTimelineShareData", //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
        ], // 必填,需要使用的JS接口列表
      });
      wx.ready(() => {
        // 需在用户可能点击分享按钮前就先调用
        let shareData = this.shareData;
        let config = shareData
          ? {
              title: shareData.title,
              desc: shareData.desc,
              link,
              imgUrl: shareData.icon,
            }
          : {
              title: document.title, // 分享标题
              desc: "为残疾人服务的专业科技平台。爱心互联,科技铸梦,爱心、专心、科技、创新", // 分享描述
              link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
              imgUrl: "../../assets/common/logo.png", // 分享图标
            };
        wx.updateAppMessageShareData({
          ...config,
          success: () => {
            // 设置成功
            console.log("updateAppMessageShareDatasharesuccess");
          },
          complete: (err) => {
            console.log("complete", err);
          },
        });
        wx.onMenuShareAppMessage({
          ...config,
          success: () => {
            // 设置成功
            console.log("onMenuShareAppMessagesharesuccess");
          },
          complete: (err) => {
            console.log("complete", err);
          },
        });
        wx.updateTimelineShareData({
          ...config,
          success: () => {
            // 设置成功
            console.log("updateTimelineShareDatasharesuccess");
          },
          complete: (err) => {
            console.log("complete", err);
          },
        });
        wx.onMenuShareTimeline({
          ...config,
          success: () => {
            // 设置成功
            console.log("onMenuShareTimelinesharesuccess");
          },
          complete: (err) => {
            console.log("complete", err);
          },
        });
      });
      wx.error(function (res) {
        console.log("wxerror", res);
        // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
      });

二、普通浏览器分享

普通浏览器分享可以用nativeshare插件