申请账号
去微信开放平台申请账号
添加应用后在底部填写Android包名
和应用签名
,填写Android的就完了,iOS咱不管
签名使用Gensignature获取
使用方法是把这个APP安装到手机,然后把要获取签名的APP使用发布版签名安装到同一个手机,然后输入包名点击下图的获取。
签名和包名填写到页面底部的这里↓
然后在页面顶部复制这个AppID
,这个东西是不会变的,复制一次就行了,下面的AppSecret
可用可不用。
因为微信的登录回调写得很智障,用户昵称头像之类的东东,你和后台,谁去管微信要,谁就要用到这个AppSecret
自动给debug包签名
如果不想每次都手动签名,可以使用gradle脚本自动签名。 在APP
的build.gradle
下android
中加入
signingConfigs {
debug {
keyAlias 'aaa'//库中对应的签名文件
keyPassword '123456'//签名密码
storeFile file('D:/AndroidProjects/xxx.jks')//签名库文件路径和名称,强烈建议存在项目目录里
storePassword '123456'//签名库密码
}
}
导入lib
跟我念:Gradle大法好!微信支付和微信登录都在这一个包里,导入就完事了
//微信SDK
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
登录代码(写到你的登录界面里)
先实例化一个微信API对象
Java
private IWXAPI api;
//实例化全局微信api对象,可以写到Activity的onCreate里也可以把整个对象放在Application里全局使用
api = WXAPIFactory.createWXAPI(this, "你的AppID", false);
api.registerApp("你的AppID");
Kotlin
lateinit var api: IWXAPI
//实例化全局微信api对象,可以写到Activity的onCreate里也可以把整个对象放在Application里全局使用
api = WXAPIFactory.createWXAPI(this, "你的AppID", false)
api.registerApp("你的AppID")
然后是登录方法
Java
private void login(IWXAPI api) {
if (!api.isWXAppInstalled()) {
ToastUtils.showShort("您还未安装微信客户端!");//这里是一句Toast,可以用你自己的Toast工具类替换
return;
}
SendAuth.Req req = SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "wechat_sdk_demo_test";
api.sendReq(req);
finish();
}
Kotlin
private fun login(api: IWXAPI) {
if (!api.isWXAppInstalled) {
ToastUtils.showShort("您还未安装微信客户端!")//这里是一句Toast,可以用你自己的Toast工具类替换
return
}
val req = SendAuth.Req()
req.scope = "snsapi_userinfo"
req.state = "wechat_sdk_demo_test"
api.sendReq(req)
finish()
}
直接调用这个方法就可以请求微信登录,回调写的下面提到的Activtiy里。
对,没错,回调写到其他Activity里,是不是很扯淡?不知道他微信的SDK开发人员脑子里是不是进了硫酸(╯‵□′)╯︵┻━┻写出这种神仙操作逻辑。
创建wxapi的Activity
在你的包名
下建一个