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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
JS、DOM和JQuery之间的关系示例分析
Apr 09 Javascript
JS iFrame加载慢怎么解决
May 13 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 Javascript
原生JS京东轮播图代码
Mar 22 Javascript
详解Webpack实战之构建 Electron 应用
Dec 25 Javascript
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
解析vue路由异步组件和懒加载案例
Jun 08 Javascript
Flutter实现仿微信底部菜单栏功能
Sep 18 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
Sep 11 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 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性能测试工具xhprof的详解
2013/06/03 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
JS原型对象的创建方法详解
2016/06/16 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
微信小程序如何获取地址
2019/12/24 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
Python中变量交换的例子
2014/08/25 Python
python根据出生年份简单计算生肖的方法
2015/03/27 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
python中time包实例详解
2021/02/02 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
文明美德伴我成长演讲稿
2014/05/12 职场文书
中学生运动会口号
2014/06/07 职场文书
解约证明模板
2015/06/19 职场文书
学校体育节班级口号
2015/12/25 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
MySQL中order by的使用详情
2021/11/17 MySQL