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 相关文章推荐
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
JavaScript中操作Mysql数据库实例
Apr 02 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
Aug 06 Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 Javascript
基于Bootstrap3表格插件和分页插件实例详解
May 17 Javascript
老生常谈原生JS执行环境与作用域
Nov 22 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 Javascript
Angular4集成ng2-file-upload的上传组件
Mar 14 Javascript
详解JS浏览器事件循环机制
Mar 27 Javascript
JS通用方法触发点击事件代码实例
Feb 17 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
Jul 22 Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 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中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
js常用DOM方法详解
2017/02/04 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
好的Python培训机构应该具备哪些条件
2018/05/23 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
学前教育专业毕业生自荐信
2013/10/03 职场文书
采购部长岗位职责
2014/06/13 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
经销商会议开幕词
2016/03/04 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
HTML基本元素标签介绍
2022/02/28 HTML / CSS
部分武汉产收音机展览
2022/04/07 无线电