JS版微信6.0分享接口用法分析


Posted in Javascript onOctober 13, 2016

本文实例讲述了JS版微信6.0分享接口用法。分享给大家供大家参考,具体如下:

为了净化网络,整顿诱导分享及诱导关注行为,微信于2014年12月30日发布了《微信公众平台关于整顿诱导分享及诱导关注行为的公告》,微信平台开发者发现,原有的微信分享功能不能用了。正在苦于微信分享该怎么解决时,微信于2015年1月10日即时发布了开放JS-SDK,为微信网站的开发提供了强大的js功能。

注:

1.微信JS-SDK,提供的分享接口仅是监听分享事件触发时,修改分享的标题、链接等。不能自定义触发分享事件

2.分享的监听,仅提供了腾讯旗下产品的接口,接口列表:分享到朋友圈、分享给朋友、分享到QQ、分享到QQ空间、分享到腾讯微博;

微信6.0之后,原有的WeixinJSBridge.on('menu:share:timeline', function (argv) {}不再可以使用,但是微信提供的新的方法 JS-SDK, 官方接口请参见 微信JSSDK说明文档

分享接口使用实例:

注:本文介绍的前提是服务器端已经获取的公众平台的access_token和Jsapi_Ticket

一、权限验证配置,注册当前页面使用的分享接口

//注入权限验证配置
wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '@AccessTokenManage.AppID', // 必填,公众号的唯一标识
  timestamp:@timestamp , // 必填,生成签名的时间戳
  nonceStr: '@timestamp', // 必填,生成签名的随机串
  signature: '@Common.SecurityHelper.SHA1(sig)',// 必填,签名,见附录1
  jsApiList: [
    //分享接口列表
    'onMenuShareTimeline',
    'onMenuShareAppMessage',
    'onMenuShareQQ',
    'onMenuShareQZone',
    'onMenuShareWeibo'
  ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

二、在ready事件中,注册监听分享

//处理成功验证
wx.ready(function () {
  // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,
  //config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。
  //对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
  //监听,分享到朋友圈
  wx.onMenuShareTimeline({
    title:'标题测试',
    link:'https://3water.com',
    imgUrl:'https://3water.com/favicon.ico',
    success:function(){
      appendText('分享成功');
    },
    calcel:function(){
      appendText('已经取消');
    }
  });
  //监听,分享到QQ空间
  wx.onMenuShareQZone({
    title: '标题测试', // 分享标题
    desc: '描述测试', // 分享描述
    link: 'https://3water.com', // 分享链接
    imgUrl: 'https://3water.com/favicon.ico', // 分享图标
    success: function () {
      // 用户确认分享后执行的回调函数
      appendText('分享QQ空间成功');
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
      appendText('分享QQ控件取消');
    }
  });
  //监听,分享给朋友 (type,dataurl基本可以放弃不使用)
  wx.onMenuShareAppMessage({
    title: '标题测试', // 分享标题
    desc: '描述测试', // 分享描述
    link: 'https://3water.com', // 分享链接
    imgUrl: 'https://3water.com/favicon.ico', // 分享图标
    type: 'link', // 分享类型,music、video或link,不填默认为link
    dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
    success: function () {
      // 用户确认分享后执行的回调函数
      appendText('分享给朋友成功');
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
      appendText('分享给朋友取消');
    }
  });
  //监听,分享到QQ
  wx.onMenuShareQQ({
    title: '标题测试', // 分享标题
    desc: '描述测试', // 分享描述
    link: 'https://3water.com', // 分享链接
    imgUrl: 'https://3water.com/favicon.ico', // 分享图标
    success: function () {
      // 用户确认分享后执行的回调函数
      appendText('分享到QQ成功');
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
      appendText('分享到QQ取消');
    }
  });
  //监听,分享到腾讯微博 (基本可以放弃不使用)
  wx.onMenuShareWeibo({
    title: '标题测试', // 分享标题
    desc: '描述测试', // 分享描述
    link: 'https://3water.com', // 分享链接
    imgUrl: 'https://3water.com/favicon.ico', // 分享图标
    success: function () {
      // 用户确认分享后执行的回调函数
      appendText('分享到腾讯微博成功');
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
      appendText('分享到腾讯微博失败');
    }
  });
  appendText('ready事件触发');
});

关于常用封装实例可参考前面一篇《微信js-sdk分享功能接口常用逻辑封装示例》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Code:findPosX 和 findPosY
Dec 20 Javascript
原型方法的不同写法居然会影响调试的解决方法
Mar 08 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
Dec 15 Javascript
javascript学习(二)javascript常见问题总结
Jan 02 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
JS对象与json字符串格式转换实例
Oct 28 Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
关于TypeScript模块导入的那些事
Jun 12 Javascript
原生javascript自定义input[type=radio]效果示例
Aug 27 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 Javascript
js实现html table 行,列锁定的简单实例
Oct 13 #Javascript
微信小程序 SocketIO 实例讲解
Oct 13 #Javascript
简单谈谈JS数组中的indexOf方法
Oct 13 #Javascript
使用jquery如何获取时间
Oct 13 #Javascript
HTML Table 空白单元格补全的简单实现
Oct 13 #Javascript
微信js-sdk分享功能接口常用逻辑封装示例
Oct 13 #Javascript
js给table赋值的实例代码
Oct 13 #Javascript
You might like
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
jQuery 树形结构的选择器
2010/02/15 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
js原型链与继承解析(初体验)
2016/05/09 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
Python语言异常处理测试过程解析
2020/01/08 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
django教程如何自学
2020/07/31 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
荷兰电脑专场:Paradigit
2018/05/05 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
店长岗位的工作内容
2013/11/12 职场文书
违反学校规定检讨书
2014/01/18 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
校园环保标语
2014/06/13 职场文书
销售人员求职信
2014/07/22 职场文书
HttpClient实现表单提交上传文件
2022/08/14 Java/Android