引言
在当前的大环境下,很多项目的需求都会要求有第三方微信登录、分享、支付等等功能。基本上已经成为每个应用的标配了。
固然市面上有很多第三方插件可供我们使用,而且貌似也挺方便的。但是作为一名合格的开发者,如果只知其然而不知其所以然的话是很悲哀的一件事。所以我们今天就来说说微信的接入问题。
申请你的APPID
请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。
依赖
还在用eclipse开发的恕不接待,见谅见谅…
Android studio配置,在项目moudle的build.gradle中添加依赖:
这个包括了统计功能,如果不想要那个统计功能请使用如下依赖:
AndroidManifest.xml 设置
添加必要的权限支持:
注册到微信
要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。比如:你想支付的时候调起你手机上的微信,这个时候就用到这个了。
这个注册,官方推荐在程序的入口处注册,那我们直接去Application中注册吧
发送请求或响应到微信
sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面。
sendResp是微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
sendReq的实现示例,如下所示:
需要注意的是,SendMessageToWX.Req的scene成员,如果scene填WXSceneSession,那么消息会发送至微信的会话内。如果scene填WXSceneTimeline(微信4.2以上支持,com.tencent.mm.opensdk.constants.Build.java里面定义了各个功能支持的版本号,如果需要检查微信版本支持API的情况, 可调用IWXAPI的getWXAppSupportAPI方法,比如,要判断微信是否支持分享到朋友圈功能,可以如下所示进行判断:if (api.getWXAppSupportAPI() >= Build.TIMELINE_SUPPORTED_SDK_INT) {//do share}
),那么消息会发送至朋友圈。scene默认值为WXSceneSession。
sendResp的实现与SendReq类似,如下图所示:
接收微信的请求及返回值
并在manifest文件里面加上exported属性,设置为true,例如:
c. 在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法,示例如下:
注意事项
如果需要运行SDK Sample工程,需要通过指定的xxxxx.keystore来进行签名:
领取专属 10元无门槛券
私享最新 技术干货