微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈及QQ自定义分享
2018-01-30 14:08
1161 查看
问题:
H5经常会做一些从APP或其他地方分享出来的页面,在微信及QQ中会进行二次分享,需要自己定义分享的名字和图片;
微信的分享再分享在微信公众号文档中有相关说明:微信JS-SDK说明文档
一、微信分享
1. 在这里,我做了微信分享的公共函数
首先判断是否是移动端:
2. 调用微信分享的函数
二、QQ分享
QQ是通过head里面的标签来识别分享的图标可标题的
涉及到H5微数据的一个属性itemprop,有兴趣可以查一查
下面是例子:
在js中的应用:获取完数据后自定义分享
H5经常会做一些从APP或其他地方分享出来的页面,在微信及QQ中会进行二次分享,需要自己定义分享的名字和图片;
微信的分享再分享在微信公众号文档中有相关说明:微信JS-SDK说明文档
一、微信分享
1. 在这里,我做了微信分享的公共函数
首先判断是否是移动端:
//判断访问终端 var browser = { versions: function() { var u = navigator.userAgent, app = navigator.appVersion; return { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端 iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部 weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增) qq: u.match(/\sQQ/i) == "qq", //是否QQ weibo: u.match(/WeiBo/i) == "weibo", //是否微博 }; }(), language: (navigator.browserLanguage || navigator.language).toLowerCase() };
/*=======================================分享Start=======================================*/ //注释:在这里,getNowTime()是时间戳函数,gObj.parameterObj是调取接口的公共参数对象;调取接口如果不需要就不加 function shareWX(shareObj){ /*微信分享*/ var url = encodeURIComponent(location.href.split('#')[0]); gObj.parameterObj.url = url; $.ajax({ type: "post", url: "/app/fenzhongkeji/HttpXmlClient/getWeiXin.json?" + getNowTime(), data: gObj.parameterObj, dataType: 'json', success: function(data) { data = data.data; /*微信接口*/ var appId = data.appId; 4000 var timestamp = data.timestamp; var nonceStr = data.nonceStr; var signature = data.signature; var obj = { debug: false, // 开启调试模式 appId: appId, // 必填,公众号的唯一标识 timestamp: timestamp, // 必填,生成签名的时间戳 nonceStr: nonceStr, // 必填,生成签名的随机串 signature: signature, // 必填,签名,见附录1 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone'] } /*权限验证配置*/ wx.config(obj); if(browser.versions.mobile) { //判断是否是移动设备打开。browser代码在下面 var ua = navigator.userAgent.toLowerCase(); //获取判断用的对象 if(ua.match(/MicroMessenger/i) == "micromessenger") { wx.ready(function() { WeixinJSBridge.call('showOptionMenu'); /*加载完数据,能分享的时候隐藏加载层*/ $("#preloader").hide(); /*1-分享给朋友*/ wx.onMenuShareAppMessage(shareObj); /*2-分享给朋友圈*/ wx.onMenuShareTimeline(shareObj); /*3-分享到QQ好友*/ wx.onMenuShareQQ(shareObj); /*4-分享到QQ空间*/ wx.onMenuShareQZone(shareObj); /*5-分享到腾讯微博*/ wx.onMenuShareWeibo(shareObj); }); wx.error(function(res) {}); } else { /*加载完数据,能分享的时候隐藏加载层*/ $("#preloader").hide(); } } else { $("#preloader").hide(); } } }); } /*=======================================分享End=======================================*/
2. 调用微信分享的函数
/*微信分享*/ var shareName = '分享标题'; var shareDesc= '分享描述'; var sharePic= '分享图片路径'; shareWX({ title: shareName, // 分享标题 desc: shareDesc, // 分享描述 link: window.location.href, // 分享链接 imgUrl: sharePic, // 分享图标 success: function() {}, cancel: function() {} })
二、QQ分享
QQ是通过head里面的标签来识别分享的图标可标题的
涉及到H5微数据的一个属性itemprop,有兴趣可以查一查
下面是例子:
<meta itemprop="name" content="@猴子派来的逗比发了一个两三分钟短视频,看了会上瘾,怕是有毒吧!"/> <meta itemprop="description" name="description" content="两三分钟 "/> <meta itemprop="image" content="http://ovideo.2or3m.com/fzlist/20170325/fYzCXHnnA5.jpg"/>
在js中的应用:获取完数据后自定义分享
/*QQ分享*/ var shareName = '分享标题'; var shareDesc= '分享描述'; var sharePic= '分享图片路径'; var metaStr = '<meta itemprop="name" content="'+shareName+'"/><meta name="description" itemprop="description" content="'+shareDesc+'"/><meta itemprop="image" content="'+sharePic+'"/>'; $('head').append(metaStr); $('title').html(shareName);
相关文章推荐
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈,后台实现
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到QQ,分享到微博
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈
- 微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
- 微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置
- 微信js-sdk实现“分享到朋友圈”和“发送给朋友”
- 微信js-sdk+JAVA实现“分享到朋友圈”和“发送给朋友”功能详解
- 不使用官方SDK,实现微信分享(发送到朋友,发送到朋友圈)
- Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
- 微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友
- 微信最新js-sdk自定义分享功能问题。继续大神解答!!!!!
- 不使用官方SDK,实现微信分享(发送到朋友,发送到朋友圈)
- 微信JS-SDK分享功能的.Net实现代码
- 不使用官方SDK,实现微信分享(发送到朋友,发送到朋友圈)
- 微信js-sdk实现分享到朋友圈
- 微信开发(2):微信js sdk分享朋友圈,朋友,获取config接口注入权限验证(java)