微信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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Informatica ETL开发入门实例

    Informatica ETL开发入门实例Informatica客户端工具:5个Designer——定义源及目标结构设计转换规则,生成ETL映射RepositoryManager——元数据资料库,依赖性分析,安全性管理等RepositoryServerAdministratorConsole——Repository的建立与维护WorkflowManager——合理的实现复杂的ETL工作流基于时间或事件的作业高度WorkflowMonitor——监控workflow和session,生成工作日志及报告…

    2022年6月11日
    33
  • 互联网创业公司如何防御ddos攻击风险_怎么防止ddos

    互联网创业公司如何防御ddos攻击风险_怎么防止ddosDDoS(DistributedDenialofService,分布式拒绝服务)主要通过大量合法的请求占用大量网络资源,从而使合法用户无法得到服务的响应,是目前最强大、最难防御的攻击之一。什么是DDoS攻击?看到一个好玩的解释,源自百度百科,一群恶霸试图让对面那家有着竞争关系的商铺无法正常营业,他们会采取什么手段呢?恶霸们扮作普通客户一直拥挤在对手的商铺,赖着不走,真正的购物者却无法进入;或者总是和营业员有一搭没一搭的东扯西扯,让工作人员不能正常服务客户;也可以为商铺的经营者提供虚假信息,商铺

    2025年6月3日
    0
  • UML图绘制—–时序图的画法

    UML图绘制—–时序图的画法UML图绘制—–时序图的画法1.什么是时序图时序图用于描述对象之间的传递消息的时间顺序,即用例中的行为顺序主要用来更直观的表现各个对象交互的时间顺序,将体现的重点放在以时间为参照,各个对象发送、接收消息,处理消息,返回消息的时间流程顺序,也称为时序图。又名序列图、循序图、顺序图,是一种UML交互图2.时序图的作用:确认和丰富一个使用情境的逻辑。3.时序图…

    2022年6月15日
    41
  • Java 中 Boolean 和 boolean的区别

    Java 中 Boolean 和 boolean的区别上次一个同学问 Boolean 类型的值不是只有 true 和 false 两种吗 为什么他定义的属性出现了 null 值 我们应该先明确一点 boolean 是 Java 的基本数据类型 Boolean 是 Java 的一个类 boolean 类型会在 赋零值 阶段给属性赋 false 而 Boolean 是一个类 会在 赋零值 阶段给对象赋 null 如果是静态属性 会在类加载时被赋值 如果是普通类属性 会在实例化对象时赋值 这两点可以了解一下 类加载机制 和 对象创建过程 类加载机制

    2025年6月14日
    0
  • [Warning] large integer implicitly truncated to unsigned type [-Woverflow][通俗易懂]

    [Warning] large integer implicitly truncated to unsigned type [-Woverflow][通俗易懂][Warning]largeintegerimplicitlytruncatedtounsignedtype[-Woverflow]警告的原因是:整数溢出整数溢出:当整数达到它所能表述的最大值时,会重新从起点开始#include<stdio.h>intmain(void){ unsigneda=12345678910; printf(“a=%d\n”,a); return0;}该程序输出以后并不是输出a=12345678910而是:上面的代码

    2022年7月25日
    7
  • 深入浅出:hadoop分布式文件存储系统(HDFS)

    深入浅出:hadoop分布式文件存储系统(HDFS)分布式文件存储系统如上图所示,HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;SecondaryNameNode:是一个小弟,分担大哥namenode的一部分工作量;是Na…

    2022年5月10日
    46

发表回复

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

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