最近需要将自己的应用接入微信,想要完成的功能是从我们的App将一段内容发送到微信好友,同时好友点击发送的内容后可以打开我们的应用观看视频。
由于之前使用的百度社会化分享SDK,其中有涉及到微信分享的内容,重写过WXEntryActivity回调类,而在自己开发微信分享的过程中可能由于WXEntryActivity中的内容混杂,又或者是自己开发的微信分享的内容与百度集成的社会化分享有冲突,在很长一段时间内都没有成功完成上面的目标。
之后决定重新开始,去除百度社会化分享的内容,同时对照微信提供的文档重新开发,终于在两个多小时后成功完成。
总体的思路就是:阅读官方文档 --> 下载Demo并运行 --> 移植Demo
基本接入的内容通过阅读官方是没问题的,而回调部分的内容自己是通过Demo才搞定的。下面简要总结:
1、第三方应用发送请求或发送响应到微信终端,可以通过IWXAPI的 sendReq 和 sendResp 两个方法来实现。
其中:
sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面。sendResp是微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
2、涉及回调,在文档上也清楚说明了,分为三步骤
第一:在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类
由于自己在开发时没有注意这个问题,在包名下还新建了一层目录再新建wxapi目录,这样导致了微信回调始终没成功
第二:实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法
onReq和onResp中的代码可以参照Demo
第三:在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法
WXEntryActivity是微信回调第三方应用的一个中间界面(其实就是一个Activity),充当桥梁的作用。可以在这个类中任意编写代码已达到友好交互的目的。
其实只要静下心来仔细阅读文档,结合Demo运行,再移植Demo中的内容,想要开发基本的微信接入是很容易的。