微信登录的分身/双开取消操作无回调(超简单解决方法)

微信官方无法保证双开应用的稳定性,所以并没有给微信登录的取消情况设置回调,但是可能有些同学的部分需求需要用到这个微信登录的取消去进行某些操作,这时,我们就需要一些手段来实现,

Android中有一个生命周期叫onResume(),在页面重新变得可见的时候会进行一次调用我们只需要在onResume中进行一些判断(不一定是Android,大部分平台都有这种类似的生命周期函数,同理即可),首先定义一个全局变量

private int flag = 1;

然后再onResume()回调中加上
 

@Override
protected void onResume() {
    super.onResume();

    if (flag % 2 == 0) {
        //编写你需要进行的操作,比如finish当前页面等操作
    }
    flag += 1;
}

onResume在用户一进入页面的时候会调用一次,当用户的微信双开弹窗被用户取消掉以后,onResume又会调用一次,这时就等同于用户取消了本次登录,那同学们看到这可能又有疑问了,同学1:老师,那就算用户不是取消微信登录,他在微信登录成功的回调中完成某些操作后也可能导致这个onResume的触发呀,这位同学说的没错,所以,我们这时最关键的一步来了,在微信的官方回调用让flag - 1
 

@Override
public void onResp(BaseResp resp) {
    // 收到回调时,将flag-1
    flag -= 1;
    if (resp instanceof SendAuth.Resp) {
        SendAuth.Resp authResp = (SendAuth.Resp) resp;
    //不做过多展示

这时,就不会让其他操作影响这个微信取消登录的判断了
(实际情况可能略有不同,可根据该思路进行修改即可,有问题请补充)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值