android 微信登录

1、友盟第三方平台注册,androidmainfest添加appkey

<meta-data
    android:name="UMENG_APPKEY"
    android:value="56a5848f67e58e51a400021a"/>
2、添加相关的库

3.代码

UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.login");

private String AppID = "wx121e78a98dc358f0";
private String AppSecret = "18e1d3ff5a2851036d33838c4412d913";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_login);
    addWXPlatform();
}
/**
 * @return
 * @功能描述 : 添加微信平台授权登录
 */


private void addWXPlatform() {
    // 注意:在微信授权的时候,必须传递appSecret
    mController = UMServiceFactory.getUMSocialService("com.umeng.login");
    // 添加微信平台,APP_ID、APP_SECRET都是在微信开放平台,移动应用通过审核后获取到的
    UMWXHandler wxHandler = new UMWXHandler(NewLoginActivity.this, AppID, AppSecret);
    if(wxHandler.isClientInstalled()){
        wxHandler.setRefreshTokenAvailable(false);
        wxHandler.addToSocialSDK();
    }else{
        Toast.makeText(NewLoginActivity.this, "请先安装微信客户端", Toast.LENGTH_SHORT).show();
    }

}
case R.id.iv_wxLogin:
    login(SHARE_MEDIA.WEIXIN);
    break;
case R.id.exit:
    logout(SHARE_MEDIA.WEIXIN);

/**
 * 授权。如果授权成功,则获取用户信息
 *
 * @param platform
 */
private void login(final SHARE_MEDIA platform) {

    mController.doOauthVerify(NewLoginActivity.this, platform,
            new SocializeListeners.UMAuthListener() {

                @Override
                public void onStart(SHARE_MEDIA platform) {
                    Toast.makeText(NewLoginActivity.this, "授权开始", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onError(SocializeException e, SHARE_MEDIA platform) {
                    Toast.makeText(NewLoginActivity.this, "授权失败", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onComplete(Bundle value, SHARE_MEDIA platform) {
                    // 获取uid
                    String uid = value.getString("uid");
                    Log.e("uid", uid);
                   if (!TextUtils.isEmpty(uid)) {
                        // uid不为空,获取用户信息
                        getUserInfo(platform);
                    } else {
                        Toast.makeText(NewLoginActivity.this, "授权失败...", Toast.LENGTH_LONG).show();
                    }
                }

                @Override
                public void onCancel(SHARE_MEDIA platform) {
                    Toast.makeText(NewLoginActivity.this, "授权取消", Toast.LENGTH_SHORT).show();
                }
            });
}

/**
 * 获取用户信息
 *
 * @param platform
 */
private void getUserInfo(SHARE_MEDIA platform) {
    mController.getPlatformInfo(NewLoginActivity.this, platform,
            new SocializeListeners.UMDataListener() {
                @Override
                public void onStart() {
                }

                @Override
                public void onComplete(int status, Map<String, Object> info) {
                    if (info != null) {
                        String nickname = (String) info.get("nickname");
                        String openid = (String) info.get("openid");
                        Log.e("openid", openid);
                        String headimgurl = (String) info.get("headimgurl");
                        mSp.edit().putBoolean("isWxLogin", true).commit();
                        mSp.edit().putString("nickname", nickname).commit();
                        mSp.edit().putString("openid", openid).commit();
                        mSp.edit().putString("headimgurl", headimgurl).commit();
                        Intent intent = new Intent(NewLoginActivity.this, IndexActivity.class);
                        startActivity(intent);
                        finish();
                    }
                }
            });
}
 /**
     * 注销本次登陆
     * @param platform
     */
    private void logout(final SHARE_MEDIA platform) {
        mController.deleteOauth(NewLoginActivity.this, platform,
                new SocializeListeners.SocializeClientListener() {

                    @Override
                    public void onStart() {

                    }

                    @Override
                    public void onComplete(int status, SocializeEntity entity) {
                        mSp.edit().putString("nickname", "").commit();
                        mSp.edit().putBoolean("isWxLogin", false).commit();
                        mSp.edit().putString("headimgurl", "").commit();
                        mSp.edit().putString("openid", "").commit();
                        Intent intent = new Intent(NewLoginActivity.this,IndexActivity.class);
                        startActivity(intent);
                        finish();
//                        if (status != StatusCode.ST_CODE_SUCCESSED) {
//                            Toast.makeText(LoginActivity.this, "退出失败", Toast.LENGTH_SHORT).show();
//                        }
                        //  Toast.makeText(LoginActivity.this, "退出当前账号", Toast.LENGTH_SHORT).show();
                    }
                });
    }





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值