环境
- xcode 6.4
- objective-C
- iOS应用
用例
- 该产品是集成在第 3 方应用中的 SDK
- 不能访问使用 SDK 的应用程序的源代码
- SDK 中的模块应检索用于启动应用程序的 URL(如果有)
手头的问题
考虑到上述用例,我如何检索用于启动应用程序的 URL(如果有),或者拦截应用程序 AppDelegate 实现的“openUrl”方法?
最佳答案
您可以创建自己的类来实现 UIApplicationDelegate
协议(protocol)。在您的 SDK 的启动代码中(用户必须尽早调用 application:willFinishLaunchingWithOptions:
),实例化它,并将主 UIApplication 对象的 delegate
替换为您的自定义对象。
您的自定义对象现在是应用程序委托(delegate)而不是他们的。
在设置 UIApplication 对象的委托(delegate)之前,将您的类的委托(delegate)设置为当前的 UIApplication 委托(delegate),以便您可以将任何消息转发回它们的应用程序委托(delegate)对象。
无需调配。
关于ios - Objective-C Hook 到 [AppDelegate openUrl],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31948821/