目前,新版的微信 js 出来了,你可能暂时不需要这个版本了。详情见:微信 JSSDK 说明。这个版本非常强大,可以传图图片、语音,同时也有更高的要求,需要签名。
微信打开 DEMO 地址:http://sofish.github.io/wechat.js,或者扫一扫下面的二维码进行分享:
使用 bower 管理 wechat.js 的依赖:
$ bower install wechat.js --save
更新 wechat.js 依赖版本:
$ bower update
下面是 API 详解,使用可参考上面 DEMO 的源代码。微信的 API 是有点恶心的,也不断在变,如果发现问题请给提 issue 或者 pull-request 吧。
一、唯一接口:wechat,有「分享」+ 「操作」两种类型
// 分享 wechat('friend', data, callback); // 朋友 wechat('timeline', data, callback); // 朋友圈 wechat('weibo', data, callback); // 微博 wechat('email', data, callback); // 邮件分享 // 操作 wechat('hideToolbar', callback); // 隐藏底部菜单 wechat('hideOptionMenu', callback); // 隐藏右上角分享按钮 wechat('showOptionMenu', callback); // 显示右上角分享按钮 wechat('closeWebView'); // 关闭webview wechat('scanQRCode'); // 跳转到扫描二维码页面 wechat('imagePreview', imgData, callback); // 图片预览/查看大图 // imgData = { // current: 'picture1.jpg', // 要预览的当前张url // urls: ['picture1.jpg', 'picture2.jpg'] // 所有图片的url列表 // } wechat('network', callback); // 查看用户当前网络 // 1. wifi // 2. edge 非 wifi,包含 3G/2G // 3. fail 网络断开连接 // 4. wwan 2g/3g
二、data 「属性」支持函数
因为有些数据是需要拼接,或者在点击分享按钮的时候可能才存在的,但是又不想写很麻烦时机判断,这里 data 中支持传入函数,比如:
// 一般的数据 var data = { 'app': 'APP ID', // 选填,默认为空 'img': '图片 URL', // 选填,默认为空或者当前页面第一张图片 'link': '链接', 'desc': '描述', 'title': '标题' }; // 假设我们在一个单页应用,title 可能是 js 在数据载入后才有的,那么可以这样来: var getTitle = function() { return document.title; }; // 这个数据 ,最终 wechat.js 会自动转换 var data = { // 这里需要特别说明的是,建议不要用新浪微博的图片地址,要么你试试,哈哈 'img': '图片 URL', 'link': '链接', 'desc': '描述', 'title': getTitle() }; // 发送邮件 var data = { title: "邮件标题", content: "邮件内容" };
三、回调
var callback = function() { // 返回的数据并不统一,接口已经尽量统一,我觉得微信公司现在缺 js 程序员 // 也有一些是很恶心的 console && console.log(argument); }; wechat('timeline', data, callback);