AppDelegateHooks 0.0.1

AppDelegateHooks 0.0.1

RaiseChestnut维护。



  • 邓锋

AppDelegateHooks

CocoaPods Compatible Platform

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