AppDelegateHooks
AppDelegateHooks:一个可以轻松拦截AppDelegate所有回调的轻量库。
AppDelegateHooks:一个简单的AppDelegate方法钩子库。
特性
-
原生UIApplicationDelegate代码提示
-
创建一个新的类,继承AppDelegateHook类即可,无需其他操作
-
提供重写level属性,自定义调用顺序
-
无论组件内、模块内,均可无限制地hook主工程的生命周期
-
原生UIApplicationDelegate代码提示
-
只需要创建一个新类,继承AppDelegateHook即可
-
重写level属性,自定义调用序列
-
在哪里创建类都可以
CocoaPods
pod 'AppDelegateHooks'
使用 How To Use
主工程:main project
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
print("Main didFinishLaunchingWithOptions")
return true
}
}
在子组件中,添加以下子框架或kit
class ExampleHook1 : AppDelegateHook{
//添加你想要的生命周期
self.level = 1000//如果你这个组件想要最先加载 level越大越先
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool {
print("ExampleHook1 didFinishLaunchingWithOptions")
return false
}
func applicationWillResignActive(_ application: UIApplication) {
print("ExampleHook1 applicationWillResignActive")
}
......
}
class ExampleHook2 : AppDelegateHook{
//添加你想要的生命周期
self.level = 10000//如果你这个组件想要最先加载 level越大越先
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool {
print("ExampleHook2 didFinishLaunchingWithOptions")
return false
}
func applicationWillResignActive(_ application: UIApplication) {
print("ExampleHook2 applicationWillResignActive")
}
......
}
输出:print
ExampleHook2 didFinishLaunchingWithOptions
ExampleHook1 didFinishLaunchingWithOptions
Main didFinishLaunchingWithOptions
ExampleHook2 applicationWillResignActive
ExampleHook1 applicationWillResignActive