今天在开发项目的时候,由于需要在微信中实现分享功能(分享成功后实现页面跳转并记录)。问度娘,找了很久,终于找到一个不错的方法。收藏起来以后备用,也希望对大家有所帮助!

在github的地址:https://github.com/maxzhang/WeixinAPI

我能做什么?

  1. 分享到微信朋友圈、微信好友或腾讯微博

  2. 调用微信客户端的图片播放组件

  3. 获取当前的网络状态

  4. 隐藏/显示右上角的菜单入口

  5. 隐藏/显示底部浏览器工具栏

  6. 关闭当前WebView页面

DEMO

http://jsbin.com/woluy/latest

微信扫描下面二维码查看例子:

API

1、API初始化

WeixinAPI 初始化,是后续所有 WeixinAPI 操作的起始,调用方法:

 var wxData = {    'appId': '', // 服务号可以填写appId,没有则留空
'imgUrl': '', // 分享显示的图标
'link': 'http://maxzhang.github.io', // 分享链接
'title': '大家好,我是cyt静风', // 分享标题
'desc': '大家好,我是cyt静风' // 分享内容};
WeixinAPI.ready(wxData);

你可以在ready动作之后的任何时候更改wxData对象,比如:

wxData.link = 'http://www.75team.com';

2、分享事件监听

支持的事件名称:

  • ready 准备分享

  • cancel 取消分享

  • ok 分享成功

  • fail 分享失败

  • complete 分享结束

默认事件监听应用到全局,不论哪个分享渠道都会执行回调函数。调用方法:

 WeixinAPI.on('ok', function() { alert('share success!'); });
WeixinAPI.on('fail', function() { alert('share failure!'); });

注:最新版本微信已经不再区分分享动作,分享只响应统一的"general_share"动作,以下接口只有在微信5.4以下版本才有效

除此之外,你还可监听特定动作的事件,支持:

  • timeline 朋友圈

  • appmessage 微信朋友

  • weibo 腾讯微博

调用方法:

 WeixinAPI.on('timeline:ok', function() { alert('share timeline success!'); });
WeixinAPI.on('timeline:fail', function() { alert('share timeline failure!'); });

3、移除事件监听

调用方法:

 function callback() {}
WeixinAPI.on('ok', callback);
WeixinAPI.off('ok', callback); // 取消监听

也可以一次性移除所有监听,调用方法:

WeixinAPI.off('ok');

4、调用微信客户端的图片播放组件

调用方法:

// 需要播放的图片url列表var urls = ['url1', 'url1', ..., 'urlN'];// 选一个作为当前展示的图片urlvar current = 'url';

WeixinAPI.imagePreview(current, urls);

5、获取当前的网络状态

Network 类型取值:

  • network_type:wifi wifi网络

  • network_type:edge 非wifi,包含3G/2G

  • network_type:fail 网络断开连接

  • network_type:wwan 2g或者3g

  • unknow 未知网络

调用方法:

 // 同步调用,30秒同步一次 WeixinJSBridge 返回的网络状态,所以会有误差
2 var networkType = WeixinAPI.getNetworkType();// 异步调用,能获取精确的网络状态
3 WeixinAPI.getNetworkType(function(networkType) {
4 alert(networkType);
});

6、隐藏/显示右上角的菜单入口

调用方法:

 WeixinAPI.showOptionMenu();
WeixinAPI.hideOptionMenu();

7、隐藏/显示底部浏览器工具栏,仅对公众号页面有效

调用方法:

 WeixinAPI.showToolbar();
WeixinAPI.hideToolbar();

8、关闭当前WebView页面

调用方法:

WeixinAPI.closeWindow();

Weixin API -- 微信js接口的更多相关文章

  1. 微信JS接口

      微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置来源:http://www.cnblogs.com/txw1958/p/ ...

  2. 微信JS接口汇总及使用详解

    这篇文章主要介绍了微信JS接口汇总及使用详解,十分的全面.详尽,包含分享到朋友圈,分享给朋友,分享到QQ,拍照或从手机相册中选图,识别音频并返回识别结果,使用微信内置地图查看位置等接口,有需要的小伙伴 ...

  3. md笔记——微信JS接口

    微信js接口 隐藏微信中网页右上角按钮 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { Weix ...

  4. 使用微信js接口的方法 ,以调用相机为例

    protected string GetTimeStamp_Str=""; protected string nonceStr_Str = ""; protec ...

  5. 微信js接口自定义分享内容

    最近客户有个要求,需要给网页添加微信分享功能,当然指的是用微信自带浏览器的时候,希望用户在最后一页点击分享的时候是分享的首页.曾经无意中看到过微信公众开发者平台提供了js接口,所以试着做了做,果然,跌 ...

  6. 关于微信js接口调用时,token效期问题

    如果一个应用的不同模块分配两个独立的公众号微官网使用,这时调用JS接口生成的token一定就冲突,原因是,token的有效期为两个小时. 解决方案: 将两个公众号的APPID与SERVERID分给不同 ...

  7. 微信支付配置信息,JSAPI接口,H5调用微信js接口支付,微信公众号支付

    微信支付已经做完了,没接触过微信的我,经历了非常艰难的3天,才把微信支付给做出来,对于专业的人来说,估计就是一小时就搞定的事情了,虽然说做了很长时间,但是确实也学到东西了,也收获了不少,下面跟大家分享 ...

  8. 微信JS SDK配置授权,实现分享接口

    微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...

  9. 微信js SDK接口

    微信JS-SDK说明文档 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 一.微信登录功能 在进行微信OAut ...

随机推荐

  1. Java分代的思考

    我们都知道,java的gc是基于java的分代前提,不管是CMS还是G1,都是基于分代思想:老年代和新生代 思考一:为什么可以分代? 1.java中对象的生命周期是不一样的,在gc中对应年龄的概念. ...

  2. IOS 截屏(保存到相册中)

    @interface NJViewController () /** * 点击截屏按钮 */ - (IBAction)captureView:(UIButton *)sender; /** * 白色v ...

  3. IOS 移除栈顶的控制器

    - (IBAction)back2Two:(id)sender { // 移除当前栈顶的控制器 [self.navigationController popViewControllerAnimated ...

  4. POJ 3181 Dollar Dayz(递推,两个long long)

    题意:John有N美元,有价格为1~K的工具,可以买的个数不限,问1~K组合出N的方案数. f[i = 第i中工具][j = 花费为j] = 方案数. f[i][j] = sigma{ f[i-1][ ...

  5. 2017.12.22 Java序列化中你不知道的事(一)

    Java 序列化简介 Java 对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将 Java 对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回 Jav ...

  6. jrtplib移植

    jrtplib版本:3.11.1 jthread版本:1.3.3 libsrtp版本:1.6.0 jrtplib库有两种编译方式: 1. 使能jthread编译,此方式可使jrtplib自动在后台轮询 ...

  7. 【C++学习笔记】强大的算法——spfa

    spfa的定义 PFA算法的全称是:Shortest Path Faster Algorithm,用于求单源最短路,由西南交通大学段凡丁于1994年发表.当给定的图存在负边时,Dijkstra算法就无 ...

  8. MySql主从同步笔记

    1.MySql主从同步是基于二进制日志实现的,二进制日志记录了主服务器数据库的所有变动,从服务器通过读取和执行该日志文件保持和主数据库的数据一致: 2.配置主服务器 a.开启二进制日志,找到MySql ...

  9. 如何查看连接到手机热点的ip地址

    因为最近玩树莓派,需要手机做热点,然后用树莓派连接到这个热点上,苦于不知道树莓派被分配了什么样的ip地址,经过一番探索,我发现了两种办法, 安装一个 android terminal( 安卓命令行), ...

  10. jupyter notebook(一)——anaconda安装后jupyter不能自动跳转网页

    1.问题描述 之前没有遇到过.这次重装系统,发现安装anaconda这个集成版python后,jupyter notebook打开后不能自动跳转打开的交互网页. 系统是windows7.anacond ...