好久没写博客了,大概是与ReactNative大战半月已经有点疲惫了,说起集成微信三方登录,还记得上次实现功能还是刚参加工作时,用Mob的ShareSDK来集成实现的,该平台集成了数个主流平台的分享和登录功能,本来想继续抱着Mob大佬的大腿,后来觉得本项目也只集成一个微信登录而已,相比MobShareSDK,不需要再去申请额外的账号,所以最终还是决定入坑原生来将其实现,查阅了官方文档和相关资料,最后总算是将它完成了,不过相比Mob,确实封装不彻底,流程较为繁琐,而且官方文档对新手可能不太友好,所以决定来记录下相关流程和心得,ok,lets go!!!
话不多说,效果图走起来!(不要纠结是两个手机。。。)
第二个界面,我们把返回的字符串提取出昵称nickname和头像headurl,可以根据实际需求抽取字段,完成后续的操作。
下面详述实现流程
1.首先当然是去微信开放平台新建应用获取appId和secret
值得一提的是,因为审核周期过于长,所以等不及的小伙伴可以先把已经注册好的具有微信登录的app的id和secret值拿过来测试,之后审核通过后直接替换正式的id值即可,不过这里要注意:
1)测试demo的包名必须与那个已注册好的app的包名保持一致
2)测试demo的签名文件也必须与那个已注册好的app的签名文件保持一致
这样就没啥问题了,在微信开放平台那里,这就是两个相同的app,不会出什么幺蛾子。
2.接下来当然就是集成环境了
微信原生SDK的集成特别方便,在gradle里添加依赖即可
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
第一条依赖为微信原生SDK,第二条为Okhttp网络框架
在包名路径下,新建wxapi文件夹,再新建一个WXEntryActivity。(路径文件名必须保持一致)
打开WXEntryActivity
public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler
重写两个方法。
@Override
public void onR