微信登录和分享的封装

一般APP的登录都有使用微信登录、接第三方登录,有两种方法:

1、接第三方封装库,里面包含了目前主流的第三方登录

2、自己接登录SDK

这里简单的封装一下微信登录的回调activity:

GitHub源码

一、创建SDKWXEntryActivity

public abstract class SDKWXEntryActivity extends Activity implements IWXAPIEventHandler {


    private IWXAPI api;

    private static final int RETURN_MSG_TYPE_LOGIN = 1;//登录
    private static final int RETURN_MSG_TYPE_SHARE = 2;//分享

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this, SDKConfig.getWeixinAppID(), false);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }


  
    @Override
    public void onReq(BaseReq baseReq) {

    }

    @Override
    public void onResp(BaseResp resp) {
       
        if (RETURN_MSG_TYPE_SHARE == resp.getType()) {//分享
            handleRespShare(resp);
        } else if (RETURN_MSG_TYPE_LOGIN == resp.getType()) {//登录
            handleRespLogin((SendAuth.Resp) resp);
        }

    }


    private void handleRespLogin(SendAuth.Resp resp) {
        switch (resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                authSucceed(resp.code);
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                authCancel();
             
                break;
            default:
                authFail(resp.errCode);
               
                break;
        }
         finish();

    }

    private void handleRespShare(BaseResp resp) {
     
        switch (resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                shareSucceed();
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                shareCancel();
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
            default:
              
                shareFail(resp.errCode);
                break;
        }
        finish();
    }

    //登录授权成功
    public abstract void authSucceed(String code);
    //取消登录授权
    public abstract void authCancel();
    //登录授权失败
    public abstract void authFail(int code);
    
    //分享成功
    public abstract void shareSucceed();
    //取消分享
    public abstract void shareCancel();
    //分享失败
    public abstract void shareFail(int code) ;

二、创建ExtWXEntryActivity

public abstract class ExtWXEntryActivity extends SDKWXEntryActivity {


    @Override
    public void authSucceed(String code) {
        super.authSucceed(code);

        //TODO 发送RxBus,通知请求微信登录接口
        RxBus.getDefault().send(Constants.RxBus.CODE_REQUEST_WX_LOGIN, code);
        

    }

    @Override
    public void authCancel() {
        super.authCancel();

     
    }

    @Override
    public void authFail(int code) {
        super.authFail(code);

     
    }

    @Override
    public void shareSucceed() {
        super.shareSucceed();
        //TODO 发送RxBus,通知分享微信成功
        RxBus.getDefault().send(Constants.RxBus.CODE_WX_SHARE_SUCCESS);
       
    }

    @Override
    public void shareCancel() {
        super.shareCancel();
      
    }

    @Override
    public void shareFail(int code) {
        super.shareFail(code);
      
    }
}

三、创建WXEntryActivity,可多马甲包使用,不同包下创建此activity即可(如包名: cn.com.test.wxapi)

/**
 * jy
 * TODO:微信登录回调页
 */
public class WXEntryActivity extends ExtWXEntryActivity {

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值