微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈「建议收藏」

微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈「建议收藏」微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈导语:微信分享在手机右上角的三个点一键分享就ok了,那么对于分享到朋友圈,分享给朋友是怎么实现的呢?对于那种活动分享送流量是怎么定位分享者的呢?而想要将文章发送给朋友又是怎么获取到的朋友列表的呢?微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。JSSDK使用步骤1、绑定域

大家好,又见面了,我是你们的朋友全栈君。

微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈

导语:

微信分享在手机右上角的三个点一键分享就ok了,那么对于分享到朋友圈,分享给朋友是怎么实现的呢?对于那种活动分享送流量是怎么定位分享者的呢?而想要将文章发送给朋友又是怎么获取到的朋友列表的呢? 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。

JSSDK使用步骤

1、绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

设置js 安全域名在 设置–>公众号设置–>功能设置里边 appid appSercret 在开发–>基本配置里

2、引入js文件

在需要调用JS接口的页面引入如下JS文件http://res.wx.qq.com/open/js/jweixin-1.0.0.js

3、通过config接口注入权限验证配置

在微信公众平台JSSDK说明文档是这样注释的:

wx.config({
    debug: true,//开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    timestamp: , //必填,生成签名的时间戳 
    nonceStr: '', //必填,生成签名的随机串 
    jsApiList: [] //必填,需要使用的JS接口列表,所有JS接口列表见附录2 
});

4、通过ready接口处理成功验证

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

5、通过error接口处理失败验证

wx.error(function(res){    
    //config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开configdebug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。    
});

分享接口:

1、获取“分享到朋友圈”按钮点击状态及自定义分享内容接口

wx.onMenuShareTimeline({    
    title: '', // 分享标题 
    link: '', // 分享链接 
    imgUrl: '', // 分享图标 
    success: function () {     
        // 用户确认分享后执行的回调函数 
    },    
    cancel: function () {     
        // 用户取消分享后执行的回调函数 
    }    
});

2、获取“分享给朋友”按钮点击状态及自定义分享内容接口

wx.onMenuShareAppMessage({    
    title: '', // 分享标题 
    desc: '', // 分享描述 
    link: '', // 分享链接 
    imgUrl: '', // 分享图标 
    type: '', // 分享类型,music、video或link,不填默认为link 
    dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 
    success: function () {     
        // 用户确认分享后执行的回调函数 
    },    
    cancel: function () {     
        // 用户取消分享后执行的回调函数 
    }    
});

页面源码

<script > $(function(){ ajaxConfig(); }); function ajaxConfig(){ var url=window.location.href.split('#')[0]; url = url.replace(/&/g, '%26'); $.ajax({ type:"post", dataType: "json", data:{ url:url }, url: "getconfig.html", success: function(obj){ //微信注入权限接口 wx.config({ debug: false, appId: obj.appId, timestamp: obj.timestamp, nonceStr: obj.nonceStr, signature: obj.signature, jsApiList: [ 'onMenuShareAppMessage','onMenuShareTimeline' ] }); wx.ready(function(){ wx.onMenuShareAppMessage({ title: '${pro.wxtitle}', // 分享标题 desc: "${pro.wxdesc}", // 分享描述 imgUrl: 'http://www.yaoshihang.cn/${pro.imgurl}', link: window.location.href.split('#')[0], type: 'link' // 分享类型,music、video或link,不填默认为link }); wx.onMenuShareTimeline({ title: '${pro.wxtitle}', // 分享标题 link: window.location.href.split('#')[0], // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 }); wx.checkJsApi({ jsApiList: [ 'onMenuShareAppMessage','onMenuShareTimeline' ], success: function (res) { //alert(res.errMsg);  } }); }); wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 // alert("errorMSG:"+res); }); }, error:function(){ //alert("系统请求异常!"); } }); } </script>

<script type="text/javascript"> // 微信分享 $.ajax({ async: false, cache: false, url:url,//获取微信appid等的接口,如果可以直接获取到,则不需要此操作 type:'GET', success:function(data){ data = JSON.parse(data); //console.log(data) if(data.status != 1){ console.log(data.message); }else{ var sign = data.data; //alert(sign); wx.config({ "debug": false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 "appId": sign.appId, // 必填,公众号的唯一标识 "timestamp": sign.timestamp, // 必填,生成签名的时间戳 "nonceStr": sign.nonceStr, // 必填,生成签名的随机串 "signature": sign.signature, // 必填,签名,见附录1 "jsApiList": ['onMenuShareAppMessage', 'onMenuShareTimeline', 'onMenuShareQQ','hideMenuItems'] }); } } }); $(function(){ // 分享 var title = '啊啊啊啊!';//分享的标题 var getlink = location.href; var desc = '啦啦啦啦!';//分享的简介 var imgUrl='fenxiang.png';//分享图片地址 //var link = 'http://10.100.0.108:8020/guoer/src/main/webapp/static/promo/doubleEleven.html?device='; wx.ready(function(){================ // 2.1 监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口 wx.onMenuShareAppMessage({ title: title, desc: desc, link: getlink, imgUrl: imgUrl, success: function () { //alert('分享成功') } }); // 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口 wx.onMenuShareTimeline({ title: title, //desc: desc, link: getlink, imgUrl: imgUrl, success: function () { //alert('分享成功') } }); wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 //alert("errorMSG:"+res); }); }) }) </script>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145188.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一个封装的BeanCopier工具类[通俗易懂]

    一个封装的BeanCopier工具类[通俗易懂]工具类BeanCopierUtils1.支持source对象到target对象的拷贝2.支持Listsource到Listtarget的拷贝

    2025年9月1日
    7
  • 微信本地数据库解密[通俗易懂]

    微信本地数据库解密[通俗易懂]微信本地数据库解密(安卓)微信的本地数据库EnMicroMsg.db存储在/data/data/com.tencent.mm/MicroMsg/(一长串)/中uin存储在/data/data/com.tencent.mm/shared_prefs/com.tencent.mm_preferences.xml(或auth_hold_prefs.xml)中,IMEI存储在/data/data/…

    2022年6月1日
    39
  • 前端程序员的日常工作_国外程序员生活的一天

    前端程序员的日常工作_国外程序员生活的一天程序员的生活很简单,天天对着电脑,偶尔休息了也在家看看电影,打打游戏,作为一枚前端,我简单的说下,我这天天的生活吧早上起来的时候,一般都是8:30上班,然后定闹钟定到6:30一个6:40一个6:50一个然后到7:00的时候再响就开始抱怨,今天晚上一定要早点谁,然后起来,穿衣服,上厕所,刷牙洗脸,二十分钟搞定。在路边买两个包子,然后去挤公交或者地铁,人山人海啊正好8:30到公司,好不容易来…

    2022年4月19日
    48
  • Discuz 精心整理的搬家教程

    Discuz 精心整理的搬家教程由于种种原因,很多时候站长都需要对网站进行搬家,搬家会经常出现这样或那样的问题,现在对以往的经验做一个总结,希望对各位站长有所帮助。  网站的空间有独立与虚拟之分,下面分别介绍两种空间的搬家方法。  一、独立主机  网站搬家即数据的迁移,搬家前不论独立还是虚拟主机,网站都需关闭。数据的迁移分为数据库数据及程序和附件文件两部分的的迁移。  数据库的迁移:首先停止老服务器上的MySQL。复制MySQL数据存放目录下的数据文件,至于MySQL的数据存放目录,可以查看MySQL配…

    2022年7月25日
    19
  • 【前端】HTML底部返回顶部悬浮按钮

    【前端】HTML底部返回顶部悬浮按钮CSS样式:.back-to{ bottom:55px; overflow:hidden; position:fixed; right:10px; width:110px; z-index:999; } .back-to.back-top{ background:url(“./imag…

    2022年7月13日
    20
  • datax(27):不太常见配置项querySql、preSql、postSql、splitPk[通俗易懂]

    datax(27):不太常见配置项querySql、preSql、postSql、splitPk[通俗易懂]每个datax的json都有自己的json配置文档,基本大同小异,有几个配置较为少用,但是用了之后,真香~一、querySql1、使用教程描述:在有些业务场景下,where这一配置项不足以描述所筛选的条件,用户可以通过该配置型来自定义筛选SQL。当用户配置了这一项之后,DataX系统就会忽略table,column这些配置型,直接使用这个配置项的内容对数据进行筛选,例如需要进行多表join后同步数据,使用selecta,bfromtable_ajointable_bontabl.

    2022年5月16日
    467

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号