Open RyanYou opened 6 years ago
hi @RyanYou , @CheckLogin是基于AOP的特性实现的,会先判断用户是否已经登录。如果没有登录则跳转到登录页面,完成登录操作之后会返回到当前的页面,再点击按钮之后才会处理App内具体的业务逻辑。 如果已经登录,则处理App内具体的业务逻辑。
你可以看一下这篇文章,包含了@CheckLogin的具体实现。 http://www.jianshu.com/p/9e78560cadad
或者看一下@HookMethod的源码,应该就能理解@CheckLogin
嗯,基本明了@CheckLogin 的实现。其实我的需求是登陆后随之触发具体逻辑,不再需要点击按钮之后再实现具体逻辑。 我想只能对@CheckLogin再定义一个request code . 在onActivityResult调起后再加多一个Pointcut ... 但感觉这种实现不是最优的解决方案。
我想到两种方法,第一种可以尝试一下这个项目中的@HookMethod,它有一个afterMethod的属性 第二种,可以在登录的网络请求成功之后,app跳转到下一个页面之前发送一个event bus的Sticky事件。
我这边直接在@CheckLogin登录前,直接将JoinPoint保存了。 登陆后直接拿回旧的JoinPoint 调用proceed :)
学习了你的Router 和 AOP代码,获益良多。特别是AOP的代码。@CheckLogin这种切面, 怎样可以做到拦截登录前动作,登陆后随之触发吗?(提供下思路就好)