【再公告】受影响的WeixinApi用户请更新 进入全屏
一、Api升级背景
接上一个公告
,还不了解背景的,最好先去看看,别问我太多问题,Thx。
当然,也可以去看看zxlie/WeixinApi
上大家的讨论,虽然看起来都很慌乱,但是也都看看吧,反正本次微信官方整这事儿略微粗暴
了点儿!
既然如此,咱也不能一直等着官方恢复,何况人家是否会恢复
咱也不知道,为了解决点儿大家的难题,我还是花点儿时间,尽我所能帮大家升级一下吧!
二、哪些用户不用更新?
先把升级条件告诉大家:如果你的微信公众号分享本身没有受到本次微信调整的影响,请忽略本次WeixinApi的升级!
三、本次WeixinApi的升级解决了什么问题?
优先解决微信Android客户端
中的分享问题,包括:分享给好友、分享到朋友圈;这两个主要的分享,升级后可自定义分享内容、正常处理分享回调!
但是以前的async:true
模式暂时不可用,先知道这个状况!
四、如何升级?
- 1、到
WeixinApi
首页下载最新代码,包括本次新增的wxjs.6.02.js
- 2、在代码中正确引用这两个js文件
- 3、在原来的分享代码
WeixinApi.ready
最后加入这样一句钩子代码:
WeixinApi.ready(function(){
// 以前的代码保存不变,保留着就行
// 激活WeixinApi的hook功能
Api.hook.enable(wxData,wxCallbacks);
// iOS简单处理一下
Api.hook.forIOS(wxData);
});
- 4、发布你的代码,Android中应该已经可以用了,iOS也基本可以用了
关于iOS
平台下的支持,请移步至 https://github.com/zxlie/WeixinApi#3%E5%AF%B9ios%E7%89%88%E6%9C%AC%E8%BF%9B%E8%A1%8C%E7%AE%80%E5%8D%95%E6%94%AF%E6%8C%81
五、我是如何对WeixinApi如何升级的
简单两句说一下吧:
- 下载最新版的
微信Android客户端 apk文件
- 反编译apk,获取
asserts/jsapi/wxjs.js
- 在WeixinApi中对应增加
WeixinApi.hook
,包含三个方法:- WeixinApi.hook.enable() // 启用hook,并绑定分享内容和回调
- WeixinApi.hook.message() // 提供给wxjs的钩子
- WeixinApi.hook.callbacks() // 提供给wxjs的钩子
- 调整wxjs,删除冗余代码
_WXJS
的定义 - 在两个地方增加两个钩子:
- 点击分享按钮执行分享的sendMessage方法中
- 在魔术方法_call中注入分享回调的钩子
- 在WeixinApi.ready中手动激活钩子:Api.hook.enable
- 针对iOS平台,直接修改
document.title
实现分享的描述信息;在body第一个节点处插入待分享的图片;被二次打开时直接location到wxData.link实现链接被分享 - 更新代码到最新版,It works!
六、写在最后
也许这篇文章以及新版的WeixinApi过不了多久就会被微信官方看到,也许又。。。没办法,还是上一篇文章中说到的,Hack始终是Hack
,最终决定权还是在官方!TX发展牛逼了,它自己才是上帝,用户不是!