微信二次分享
1 2 | 引入sdk <script src= "https://xxxx/xxx/jweixin-1.6.0.js" ></script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | var ctx = window; var param = {}; ctx.__mm_getWeixinSign = function (resp){ if (resp.ec != 200 && param.debug){ alert( 'get weixin sign failed: ' + resp.em); return ; } var sign = resp.data.sign; // debug,jsApiList,callback wx.config({ debug: param.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: sign.appid, // 必填,公众号的唯一标识 timestamp: sign.timestamp , // 必填,生成签名的时间戳 nonceStr: sign.noncestr, // 必填,生成签名的随机串 signature: sign.signature, // 必填,签名,见附录1 jsApiList: param.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); var _shareObj = param.share; if (!_shareObj) return ; wx.ready( function () { var com_share = { title: _shareObj.title, // 分享标题 desc: _shareObj.text, // 分享描述 link: _shareObj.url, // 分享链接 imgUrl: _shareObj.pic, // 分享图标 success: _shareObj.callback, cancel: function () { // 用户取消分享后执行的回调函数 } }; var mmComWx={ weixin: 'onMenuShareTimeline' , // 分享到朋友圈 weixin_friend: 'onMenuShareAppMessage' , // 分享给微信朋友 qq: 'onMenuShareQQ' , // 分享到QQ qzone: 'onMenuShareQZone' // 分享到QQ空间 }; for ( var k in mmComWx) { if (_shareObj.configs && _shareObj.configs[k]) { var share_config = _shareObj.configs[k]; var tit = (k == 'weixin' ) ? share_config.text : share_config.title; wx[mmComWx[k]]({ title: tit, // 分享标题 desc: share_config.text, // 分享描述 link: share_config.url, // 分享链接 imgUrl: share_config.pic, // 分享图标 success: share_config.callback, cancel: function () { // 用户取消分享后执行的回调函数 } }); } else { wx[mmComWx[k]](com_share); } } param.callback && param.callback(); }); }; var index = { setConfig: function (_param, _callback) { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) != "micromessenger" ) { return ; } var url = "https://xxx/api/weixin/share?callback=__mm_getWeixinSign&url=" + encodeURIComponent(location.href); // 创建script标签,设置其属性 var script = document.createElement( 'script' ); script.setAttribute( 'src' , url); param = _param; if (_callback) { param.callback = _callback; } // 把script标签加入head,此时调用开始 document.getElementsByTagName( 'head' )[0].appendChild(script); } }; export const wxShare = () => { return index; } |
//微信二次分享 import {wxShare} from '../components/wxshare/index' export const initWXShare = () => { const title = '', text = '', pic = '', url = location.href; const share = wxShare(); share.setConfig({ debug: false, // 在生产环境设置为false,在开发环境可以检测是否调用成功 jsApiList: ['onMenuShareAppMessage','onMenuShareTimeline','updateAppMessageShareData','updateTimelineShareData'], share: { title: title,//分享标题 text: text,//分享副标题 pic: pic,//分享Card中的缩略图 url: url,//分享链接 configs: { 'weixin': { title, text, url: `${url}&src=weixin`, pic, share_type: 'web' }, 'weixin_friend': { title, text, url: `${url}&src=friend`, pic, share_type: "web" //类型,可选值为web | image,默认不传为web分享。 }, 'qzone': { title, text, url: `${url}&src=qzone`, pic, share_type: "web" // 分享的类型,可选值为web | image,默认不传为web分享。 }, 'qq': { title, text, url: `${url}&src=qq`, pic, share_type: "web" // 型,可选值为web | image,默认不传为web分享。 }, 'sina': { title, text, url: `${url}&src=sina`, pic, share_type: "web" // 型,可选值为web | image,默认不传为web分享。 } } } }) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2018-07-04 [转载]常见的移动端H5页面开发遇到的坑和解决办法