美文网首页
前端如何实现微信浏览器内分享

前端如何实现微信浏览器内分享

作者: 恋家的人走不丢 | 来源:发表于2023-02-23 15:42 被阅读0次

    特别注意

    • 将想要分享出去的地址转成二维码,分享出去的才会是卡片样式。如果在微信内使用url打开地址,分享出去的样式只有url。
    • 要分享出去的url,要和后台生成signature签名时使用的url一致。

    准备工作

    • 需要已验证的服务号。(使用企业信息注册,一年300块)
    • 登录公众号后:设置与开发-公众号设置-功能设置-填写JS接口安全域名
    • 开发工具:HBuilderX或者VS Code等均可。
    • 安装微信jssdk:npm install jweixin-module --save
    • 在需要分享的界面引入:
    <script>
       const jweixin = require('jweixin-module')
    </script>
    
    • 后台需要返回给前端生成的数据:见官方链接目录16,附录1-JS-SDK使用权限签名算法

    https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

    • 为了方便,也可将下面的picUrl,appShareUrl,以及分享内容里的title,desc配置在后台,避免前端频繁发版。

    正式开始

    需要手动修改图片地址,分享出去的url,分享标题,分享描述,一下仅用分享给朋友,分享朋友圈为例,如需其他定制,请参考官网:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

    var picUrl = "https://xxx.xxx.xxx/xxx.png";
    var appShareUrl = "https://xxx.xxx.xxx/xxx"
    jweixin.config({
        "debug": false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
        "appId": "", // 必填,公众号的唯一标识
        "timestamp": "", // 必填,生成签名的时间戳
        "nonceStr": "", // 必填,生成签名的随机串
        "signature": "",// 必填,签名
        "jsApiList": ["updateAppMessageShareData","updateTimelineShareData"] // 必填,需要使用的 JS 接口列表
    });
    jweixin.ready(function(){
        console.log("jWeixin.ready----------");
        // config信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中。                 
        jweixin.updateAppMessageShareData({//分享给朋友
            title: '', // 分享标题
            desc: '', // 分享描述
            link: appShareUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
            imgUrl: picUrl, // 分享图标
            success: function () {
                // uni.showToast({
                //  title:"分享成功!",
                //  icon:'none'
                // })
                // 设置成功
            },      
        });
        jweixin.updateTimelineShareData({ //分享朋友圈
            title: '', // 分享标题
            link: appShareUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
            imgUrl: picUrl, // 分享图标
            success: function () {
                // uni.showToast({
                //  title:"分享成功!",
                //  icon:'none'
                // })
                // 设置成功
            }
        });
    });
    jweixin.error(function(res){
        console.log("jWeixin.error----------:",res);
        // config信息验证失败会执行 error 函数,如签名过期导致验证失败,具体错误信息可以打开 config 的debug模式查看,也可以在返回的 res 参数中查看,对于 SPA 可以在这里更新签名。
    });
    

    分享个好用的url转二维码:

    http://www.wetools.com/qrcode

    相关文章

      网友评论

          本文标题:前端如何实现微信浏览器内分享

          本文链接:https://www.haomeiwen.com/subject/ufftldtx.html