| | |
| | | |
| | | NS_ASSUME_NONNULL_BEGIN |
| | | |
| | | /** |
| | | * Provides App Delegate handlers to be used in your App Delegate. |
| | | * |
| | | * To save time integrating Firebase Analytics in an application, Firebase Analytics does not |
| | | * require delegation implementation from the AppDelegate. Instead this is automatically done by |
| | | * Firebase Analytics. Should you choose instead to delegate manually, you can turn off the App |
| | | * Delegate Proxy by adding FirebaseAppDelegateProxyEnabled into your app's Info.plist and setting |
| | | * it to NO, and adding the methods in this category to corresponding delegation handlers. |
| | | * |
| | | * To handle Universal Links, you must return YES in |
| | | * [UIApplicationDelegate application:didFinishLaunchingWithOptions:]. |
| | | */ |
| | | /// Provides App Delegate handlers to be used in your App Delegate. |
| | | /// |
| | | /// To save time integrating Firebase Analytics in an application, Firebase Analytics does not |
| | | /// require delegation implementation from the AppDelegate if neither SwiftUI nor UIScene lifecycle |
| | | /// is adopted. Instead this is automatically done by Firebase Analytics. Should you choose instead |
| | | /// to delegate manually, you can turn off the App Delegate Proxy by adding |
| | | /// FirebaseAppDelegateProxyEnabled into your app's Info.plist and setting it to boolean `NO`, and |
| | | /// adding the methods in this category to corresponding delegation handlers. |
| | | /// |
| | | /// To handle Universal Links, you must return `true` in |
| | | /// `UIApplicationDelegate.application(_:didFinishLaunchingWithOptions:)`. |
| | | @interface FIRAnalytics (AppDelegate) |
| | | |
| | | /** |
| | | * Handles events related to a URL session that are waiting to be processed. |
| | | * |
| | | * For optimal use of Firebase Analytics, call this method from the |
| | | * [UIApplicationDelegate application:handleEventsForBackgroundURLSession:completionHandler] |
| | | * method of the app delegate in your app. |
| | | * |
| | | * @param identifier The identifier of the URL session requiring attention. |
| | | * @param completionHandler The completion handler to call when you finish processing the events. |
| | | * Calling this completion handler lets the system know that your app's user interface is |
| | | * updated and a new snapshot can be taken. |
| | | */ |
| | | /// Handles events related to a URL session that are waiting to be processed. |
| | | /// |
| | | /// 1. If SwiftUI lifecycle is adopted, call this method from |
| | | /// `UIApplicationDelegate.application(_:handleEventsForBackgroundURLSession:completionHandler:)` |
| | | /// in your app delegate. |
| | | /// |
| | | /// 2. If SwiftUI lifecycle is not adopted, Firebase Analytics does not require delegation |
| | | /// implementation from the AppDelegate. If you choose instead to delegate manually, you can set |
| | | /// FirebaseAppDelegateProxyEnabled to boolean `NO` in your app's Info.plist and call this method |
| | | /// from |
| | | /// `UIApplicationDelegate.application(_:handleEventsForBackgroundURLSession:completionHandler:)` |
| | | /// in your app delegate. |
| | | /// |
| | | /// @param identifier The identifier of the URL session requiring attention. |
| | | /// @param completionHandler The completion handler to call when you finish processing the events. |
| | | /// Calling this completion handler lets the system know that your app's user interface is |
| | | /// updated and a new snapshot can be taken. |
| | | + (void)handleEventsForBackgroundURLSession:(NSString *)identifier |
| | | completionHandler:(nullable void (^)(void))completionHandler; |
| | | |
| | | /** |
| | | * Handles the event when the app is launched by a URL. |
| | | * |
| | | * Call this method from [UIApplicationDelegate application:openURL:options:] (on iOS 9.0 and |
| | | * above), or [UIApplicationDelegate application:openURL:sourceApplication:annotation:] (on |
| | | * iOS 8.x and below) in your app. |
| | | * |
| | | * @param url The URL resource to open. This resource can be a network resource or a file. |
| | | */ |
| | | /// Handles the event when the app is launched by a URL (custom URL scheme or universal link). |
| | | /// |
| | | /// 1. If SwiftUI lifecycle is adopted, use `onOpenURL(perform:)` to register a handler and call |
| | | /// this method in the handler. |
| | | /// |
| | | /// 2. If UIScene lifecycle is adopted, call this method from |
| | | /// `UISceneDelegate.scene(_:willConnectTo:options:)` and |
| | | /// `UISceneDelegate.scene(_:openURLContexts:)` when the URL contexts are available. |
| | | /// |
| | | /// 3. If neither SwiftUI nor UIScene lifecycle is adopted, Firebase Analytics does not require |
| | | /// delegation implementation from the AppDelegate. If you choose instead to delegate manually, you |
| | | /// can set FirebaseAppDelegateProxyEnabled to boolean `NO` in your app's Info.plist and call this |
| | | /// method from `UIApplicationDelegate.application(_:open:options:)` in your app delegate. |
| | | /// |
| | | /// @param url The URL resource to open. This resource can be a network resource or a file. |
| | | + (void)handleOpenURL:(NSURL *)url; |
| | | |
| | | /** |
| | | * Handles the event when the app receives data associated with user activity that includes a |
| | | * Universal Link (on iOS 9.0 and above). |
| | | * |
| | | * Call this method from [UIApplication continueUserActivity:restorationHandler:] in your app |
| | | * delegate (on iOS 9.0 and above). |
| | | * |
| | | * @param userActivity The activity object containing the data associated with the task the user |
| | | * was performing. |
| | | */ |
| | | /// Handles the event when the app receives data associated with user activity that includes a |
| | | /// Universal Link. |
| | | /// |
| | | /// 1. If SwiftUI lifecycle is adopted, use `onOpenURL(perform:)` to register a handler and call |
| | | /// `Analytics.handleOpen(_:)` instead in the handler. |
| | | /// |
| | | /// 2. If UIScene lifecycle is adopted, call this method from |
| | | /// `UISceneDelegate.scene(_:willConnectTo:options:)` and `UISceneDelegate.scene(_:continue:)` when |
| | | /// NSUserActivity is available. See the [Apple |
| | | /// doc](https://developer.apple.com/documentation/xcode/supporting-universal-links-in-your-app) for |
| | | /// more details. |
| | | /// |
| | | /// 3. If neither SwiftUI nor UIScene lifecycle is adopted, Firebase Analytics does not require |
| | | /// delegation implementation from the AppDelegate. If you choose instead to delegate manually, you |
| | | /// can set FirebaseAppDelegateProxyEnabled to boolean `NO` in your app's Info.plist and call this |
| | | /// method from `UIApplication.application(_:continue:restorationHandler:)` in your app delegate. |
| | | /// |
| | | /// @param userActivity The activity object containing the data associated with the task the user |
| | | /// was performing. |
| | | + (void)handleUserActivity:(id)userActivity; |
| | | |
| | | @end |
| | | |
| | | NS_ASSUME_NONNULL_END |
| | | |