微信授权登录是有官方文档的:微信登录授权官方文档
现在我自己总结下:首先微信授权登录只能在安装有微信的情况下才可以实现,不支持H5端授权登录。其次微信授权登录是跟包名绑定的,微信授权登录demo下载:授权登录demo下载地址。
步骤:1.加入对应jar包
2.初始化IWXAPI对象
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, true); api.registerApp(Constants.APP_ID);3.判断是否安装了微信,安装了就发起请求
/** * 判断是否已安装微信 * @param context * @param api * @return */ private boolean isWXAppInstalled(Context context, IWXAPI api) { boolean result = api.isWXAppInstalled()&& api.isWXAppSupportAPI(); if (!result) { LogUtil.logE("未安装微信"); LogUtil.logE("api.isWXAppInstalled()="+api.isWXAppInstalled()); LogUtil.logE("api.isWXAppSupportAPI()="+api.isWXAppSupportAPI()); }else{ LogUtil.logV("已安装微信"); } return result; }
if (api.isWXAppInstalled()) { LogUtil.logV("安装微信了!!"); SendAuth.Req req = new SendAuth.Req(); req.scope = "snsapi_userinfo"; req.state = "passport"; api.sendReq(req); } else { toast.showText("未安装微信"); }其中的scope值一般固定为:“snsapi_userinfo”,state可以以自己包名的最后一个单词来。
4.另外必须实现IWXAPIEventHandler接口,在Demo中有一个类,即WXEntryActivity类,这个类中的方法官方文档有详细说明,这里就不多说,我想说的是这个类是跟包名绑定的,即这个类必须放到在微信平台中申请APPID所填写的包名中。