Android微信登录

微信登录

当我们做第三方微信登录时可供参考

1.首先我们做微信登录时
下载 SDK 及 API 文档 Android Studio 环境下:
在 build.gradle 文件中,添加如下依赖即可:

//导入依赖
api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'

1、2在我们的清单文件中添加微信登录所需的全限

<uses-permission android:name="android.permission.INTERNET" /> 
<!-- for mta statistics, not necessary-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

2.APP_ID最好是存放在我们的变量类是方便我们调用,做微信其他功能时也方便使用

public class Constants {
    //app_id
    public static final String APP_ID = "我们的APP_ID";
    public static IWXAPI wx_api;
}

3.初始化当然是已经拿到APP_ID的时候,初始化操作也可以放在Application里

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // 通过WXAPIFactory工厂,获取IWXAPI的实例
    Constants.wx_api = WXAPIFactory.createWXAPI(getApplicationContext(), Constants.APP_ID, true);
    // 将应用的appId注册到微信
    Constants.wx_api.registerApp(Constants.APP_ID);
}

4.接下来到我们点击登录了,当我们登录时我们的我们的第三方app端会带着我们的APP_ID、包名、签名信息去到微信客户端,微信客户端会带着这些信息去到微信服务器校验注册时的信息,校验成功通知微信客户端唤起微信授权页。

//发送请求唤起收起授权页
public void wake() {
    // send oauth request
    final SendAuth.Req req = new SendAuth.Req();
    req.scope = "snsapi_userinfo";
    req.state = "wechat_sdk_demo_test";
    Constants.wx_api.sendReq(req);
}

5,我们要创建微信回调类接收登录授权页登陆状态,在你的包下创建包名为:wxapi、类名为:WXEntryActivity,!包名类名必须相同,实现IWXAPIEventHandle从写onReq、onResp方法,在onResp方法中处理回调信息

在这里插入图片描述
在这里插入图片描述
5、2.创建完后在我们的清单文件application中注册我们的WXEntryActivity类,exported必须为true

<activity
    android:name=".wxapi.WXPayEntryActivity"
    android:exported="true"
    android:launchMode="singleTop"
    android:taskAffinity="!放app包名"
    android:theme="@android:style/Theme.NoDisplay" />

5、3.接下来在我们的WXEntryActivity类中接收,在onResp方法中处理用户是否授权

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //对象传递给 IWXAPI 接口的 handleIntent 方法
    Constants.wx_api.handleIntent(getIntent(), this);
}
@Override
public void onResp(BaseResp resp) {
    switch (resp.errCode) {
        case BaseResp.ErrCode.ERR_OK:
            Log.i("WXTest", "onResp OK");
            if (resp instanceof SendAuth.Resp) {
                SendAuth.Resp newResp = (SendAuth.Resp) resp;
                //获取微信传回的code
                String code = newResp.code;
      !!!到这我们就获得code值了,可以进行下面自己服务器的操作了
                }
            break;
        case BaseResp.ErrCode.ERR_USER_CANCEL:
            Log.i("WXTest", "onResp ERR_USER_CANCEL ");
            //发送取消
            break;
        case BaseResp.ErrCode.ERR_AUTH_DENIED:
            Log.i("WXTest", "onResp ERR_AUTH_DENIED");
            //发送被拒绝
            break;
        default:
            Log.i("WXTest", "onResp default errCode " + resp.errCode);
            //发送返回
            break;
    }
    finish();
}

到这里就结束了。。。

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!对于在 Android 上实现微信登录,您可以按照以下步骤进行操作: 1. 在微信开放平台注册并创建应用:首先,您需要在微信开放平台注册一个开发者账号,并创建一个应用,获取到您的应用ID(AppID)和应用密钥(AppSecret)。 2. 集成微信SDK:在您的 Android 项目中添加微信SDK。您可以通过在项目的 `build.gradle` 文件中添加依赖项来完成此操作。 3. 配置 AndroidManifest.xml:在您的项目的 `AndroidManifest.xml` 文件中,添加微信登录所需的权限和配置信息。例如,添加网络权限和微信登录活动。 4. 发起微信登录:在您的应用中,创建一个按钮或其他触发事件,以便用户点击后发起微信登录。在登录事件中,调用微信SDK提供的接口,向微信发送授权请求。 5. 处理微信登录回调:当用户在微信中确认授权后,微信将跳转回您的应用,您需要在您的应用中处理此回调。通过重写 `onResp` 方法,并在 `WXEntryActivity` 中实现它,以获取授权码或访问令牌。 6. 获取用户信息:一旦您获得了访问令牌,您可以使用该令牌调用微信提供的接口,获取用户的基本信息,如昵称、头像等。 以上是一个大致的步骤,您可以根据微信开放平台提供的文档和示例代码,详细了解每个步骤的具体实现方式。希望对您有所帮助!如果您还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值