Flutter Engine
The Flutter Engine
Instance Methods | Class Methods | List of all members
FlutterPluginAppLifeCycleDelegate Class Reference

#import <FlutterPluginAppLifeCycleDelegate.h>

Inheritance diagram for FlutterPluginAppLifeCycleDelegate:

Instance Methods

(void) - addDelegate:
 
(BOOL- application:didFinishLaunchingWithOptions:
 
(BOOL- application:willFinishLaunchingWithOptions:
 
(void) - application:didRegisterUserNotificationSettings:
 
(void) - application:didRegisterForRemoteNotificationsWithDeviceToken:
 
(void) - application:didFailToRegisterForRemoteNotificationsWithError:
 
(void) - application:didReceiveRemoteNotification:fetchCompletionHandler:
 
(void) - application:didReceiveLocalNotification:
 
(BOOL- application:openURL:options:
 
(BOOL- application:handleOpenURL:
 
(BOOL- application:openURL:sourceApplication:annotation:
 
(void) - application:performActionForShortcutItem:completionHandler:
 
(BOOL- application:handleEventsForBackgroundURLSession:completionHandler:
 
(BOOL- application:performFetchWithCompletionHandler:
 
(BOOL- application:continueUserActivity:restorationHandler:
 
(void) - addObserverFor:selector: [implementation]
 
(instancetype) - init [implementation]
 
(BOOL- isSelectorAddedDynamically: [implementation]
 
(BOOL- hasPluginThatRespondsToSelector: [implementation]
 
(void) - handleDidEnterBackground: [implementation]
 
(void) - handleWillEnterForeground: [implementation]
 
(void) - handleWillResignActive: [implementation]
 
(void) - handleDidBecomeActive: [implementation]
 
(void) - handleWillTerminate: [implementation]
 
(void) - application:didRegisterUserNotificationSettings: [implementation]
 
(void) - application:didReceiveLocalNotification: [implementation]
 
(void) - userNotificationCenter:willPresentNotification:withCompletionHandler: [implementation]
 
(void) - userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: [implementation]
 
(void) - application:performActionForShortcutItem:completionHandler: [implementation]
 
(BOOL- application:handleEventsForBackgroundURLSession:completionHandler: [implementation]
 

Class Methods

(static BOOL+ IsPowerOfTwo [implementation]
 

Detailed Description

Propagates UIAppDelegate callbacks to registered plugins.

Definition at line 16 of file FlutterPluginAppLifeCycleDelegate.h.

Method Documentation

◆ addDelegate:

- (void) addDelegate: (NSObject<FlutterApplicationLifeCycleDelegate>*)  delegate

Registers delegate to receive life cycle callbacks via this FlutterPluginAppLifeCycleDelegate as long as it is alive.

delegate will only be referenced weakly.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

91 :(NSObject<FlutterApplicationLifeCycleDelegate>*)delegate {
92 [_delegates addPointer:(__bridge void*)delegate];
94 [_delegates compact];
95 }
96}
NSPointerArray * _delegates
int count
Definition: FontMgrTest.cpp:50

◆ addObserverFor:selector:

- (void) addObserverFor: (NSString*)  name
selector: (SEL)  selector 
implementation

Definition at line 37 of file FlutterPluginAppLifeCycleDelegate.mm.

40 :(NSString*)name selector:(SEL)selector {
41 [[NSNotificationCenter defaultCenter] addObserver:self selector:selector name:name object:nil];
42}
DEF_SWITCHES_START aot vmservice shared library name
Definition: switches.h:32

◆ application:continueUserActivity:restorationHandler:

- (BOOL) application: (UIApplication*)  application
continueUserActivity: (NSUserActivity*)  userActivity
restorationHandler: (void(^)(NSArray*))  restorationHandler 

Calls all plugins registered for UIApplicationDelegate callbacks in order of registration until some plugin handles the request.

Returns
YES if any plugin handles the request.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

417 :(UIApplication*)application
418 continueUserActivity:(NSUserActivity*)userActivity
419 restorationHandler:(void (^)(NSArray*))restorationHandler {
420 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
421 if (!delegate) {
422 continue;
423 }
424 if ([delegate respondsToSelector:_cmd]) {
425 if ([delegate application:application
426 continueUserActivity:userActivity
427 restorationHandler:restorationHandler]) {
428 return YES;
429 }
430 }
431 }
432 return NO;
433}

◆ application:didFailToRegisterForRemoteNotificationsWithError:

- (void) application: (UIApplication*)  application
didFailToRegisterForRemoteNotificationsWithError: (NSError*)  error 

Calls all plugins registered for UIApplicationDelegate callbacks.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

248 :(UIApplication*)application
249 didFailToRegisterForRemoteNotificationsWithError:(NSError*)error {
250 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
251 if (!delegate) {
252 continue;
253 }
254 if ([delegate respondsToSelector:_cmd]) {
255 [delegate application:application didFailToRegisterForRemoteNotificationsWithError:error];
256 }
257 }
258}
const uint8_t uint32_t uint32_t GError ** error

◆ application:didFinishLaunchingWithOptions:

- (BOOL) application: (UIApplication*)  application
didFinishLaunchingWithOptions: (NSDictionary*)  launchOptions 

Calls all plugins registered for UIApplicationDelegate callbacks.

Returns
NO if any plugin vetos application launch.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

98 :(UIApplication*)application
99 didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
100 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in [_delegates allObjects]) {
101 if (!delegate) {
102 continue;
103 }
104 if ([delegate respondsToSelector:_cmd]) {
105 if (![delegate application:application didFinishLaunchingWithOptions:launchOptions]) {
106 return NO;
107 }
108 }
109 }
110 return YES;
111}

◆ application:didReceiveLocalNotification: [1/2]

- (void) application: (UIApplication*)  application
didReceiveLocalNotification: (UILocalNotification*)  notification 
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

279 :(UIApplication*)application
280 didReceiveLocalNotification:(UILocalNotification*)notification {
281 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
282 if (!delegate) {
283 continue;
284 }
285 if ([delegate respondsToSelector:_cmd]) {
286 [delegate application:application didReceiveLocalNotification:notification];
287 }
288 }
289}

◆ application:didReceiveLocalNotification: [2/2]

- (void) application: (UIApplication *)  application
didReceiveLocalNotification: ("See - deprecation")  [UIApplicationDelegate application:didReceiveLocalNotification:]
(ios(4.0, 10.0))  API_DEPRECATED 

Calls all plugins registered for UIApplicationDelegate callbacks.

◆ application:didReceiveRemoteNotification:fetchCompletionHandler:

- (void) application: (UIApplication*)  application
didReceiveRemoteNotification: (NSDictionary*)  userInfo
fetchCompletionHandler: (void(^)(UIBackgroundFetchResult result))  completionHandler 

Calls all plugins registered for UIApplicationDelegate callbacks.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

260 :(UIApplication*)application
261 didReceiveRemoteNotification:(NSDictionary*)userInfo
262 fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
263 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
264 if (!delegate) {
265 continue;
266 }
267 if ([delegate respondsToSelector:_cmd]) {
268 if ([delegate application:application
269 didReceiveRemoteNotification:userInfo
270 fetchCompletionHandler:completionHandler]) {
271 return;
272 }
273 }
274 }
275}
GAsyncResult * result

◆ application:didRegisterForRemoteNotificationsWithDeviceToken:

- (void) application: (UIApplication*)  application
didRegisterForRemoteNotificationsWithDeviceToken: (NSData*)  deviceToken 

Calls all plugins registered for UIApplicationDelegate callbacks.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

235 :(UIApplication*)application
236 didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {
237 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
238 if (!delegate) {
239 continue;
240 }
241 if ([delegate respondsToSelector:_cmd]) {
242 [delegate application:application
243 didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
244 }
245 }
246}

◆ application:didRegisterUserNotificationSettings: [1/2]

- (void) application: (UIApplication*)  application
didRegisterUserNotificationSettings: (UIUserNotificationSettings*)  notificationSettings 
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

222 :(UIApplication*)application
223 didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings {
224 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
225 if (!delegate) {
226 continue;
227 }
228 if ([delegate respondsToSelector:_cmd]) {
229 [delegate application:application didRegisterUserNotificationSettings:notificationSettings];
230 }
231 }
232}

◆ application:didRegisterUserNotificationSettings: [2/2]

- (void) application: (UIApplication *)  application
didRegisterUserNotificationSettings: ("See - deprecation")  [UIApplicationDelegate application:didRegisterUserNotificationSettings:]
(ios(8.0, 10.0))  API_DEPRECATED 

Called if this plugin has been registered for UIApplicationDelegate callbacks.

◆ application:handleEventsForBackgroundURLSession:completionHandler: [1/2]

- (BOOL) application: (UIApplication*)  application
handleEventsForBackgroundURLSession: (nonnull NSString*)  identifier
completionHandler: (nonnull void(^)())  completionHandler 
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

384 :(UIApplication*)application
385 handleEventsForBackgroundURLSession:(nonnull NSString*)identifier
386 completionHandler:(nonnull void (^)())completionHandler {
387 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
388 if (!delegate) {
389 continue;
390 }
391 if ([delegate respondsToSelector:_cmd]) {
392 if ([delegate application:application
393 handleEventsForBackgroundURLSession:identifier
394 completionHandler:completionHandler]) {
395 return YES;
396 }
397 }
398 }
399 return NO;
400}
static SkString identifier(const FontFamilyDesc &family, const FontDesc &font)

◆ application:handleEventsForBackgroundURLSession:completionHandler: [2/2]

- (BOOL) application: (UIApplication *)  application
handleEventsForBackgroundURLSession: (nonnull NSString *)  identifier
completionHandler: (nonnull void(^)(void))  completionHandler 

Calls all plugins registered for UIApplicationDelegate callbacks in order of registration until some plugin handles the request.

Returns
YES if any plugin handles the request.

◆ application:handleOpenURL:

- (BOOL) application: (UIApplication*)  application
handleOpenURL: (NSURL*)  url 

Calls all plugins registered for UIApplicationDelegate callbacks in order of registration until some plugin handles the request.

Returns
YES if any plugin handles the request.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

333 :(UIApplication*)application handleOpenURL:(NSURL*)url {
334 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
335 if (!delegate) {
336 continue;
337 }
338 if ([delegate respondsToSelector:_cmd]) {
339 if ([delegate application:application handleOpenURL:url]) {
340 return YES;
341 }
342 }
343 }
344 return NO;
345}

◆ application:openURL:options:

- (BOOL) application: (UIApplication*)  application
openURL: (NSURL*)  url
options: (NSDictionary<UIApplicationOpenURLOptionsKey, id>*)  options 

Calls all plugins registered for UIApplicationDelegate callbacks in order of registration until some plugin handles the request.

Returns
YES if any plugin handles the request.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

317 :(UIApplication*)application
318 openURL:(NSURL*)url
319 options:(NSDictionary<UIApplicationOpenURLOptionsKey, id>*)options {
320 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
321 if (!delegate) {
322 continue;
323 }
324 if ([delegate respondsToSelector:_cmd]) {
325 if ([delegate application:application openURL:url options:options]) {
326 return YES;
327 }
328 }
329 }
330 return NO;
331}
const char * options

◆ application:openURL:sourceApplication:annotation:

- (BOOL) application: (UIApplication*)  application
openURL: (NSURL*)  url
sourceApplication: (NSString*)  sourceApplication
annotation: (id annotation 

Calls all plugins registered for UIApplicationDelegate callbacks in order of registration until some plugin handles the request.

Returns
YES if any plugin handles the request.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

347 :(UIApplication*)application
348 openURL:(NSURL*)url
349 sourceApplication:(NSString*)sourceApplication
350 annotation:(id)annotation {
351 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
352 if (!delegate) {
353 continue;
354 }
355 if ([delegate respondsToSelector:_cmd]) {
356 if ([delegate application:application
357 openURL:url
358 sourceApplication:sourceApplication
359 annotation:annotation]) {
360 return YES;
361 }
362 }
363 }
364 return NO;
365}

◆ application:performActionForShortcutItem:completionHandler: [1/2]

- (void) application: (UIApplication*)  application
performActionForShortcutItem: (UIApplicationShortcutItem*)  shortcutItem
completionHandler: (void(^)(BOOL succeeded))  completionHandler 
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

367 :(UIApplication*)application
368 performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem
369 completionHandler:(void (^)(BOOL succeeded))completionHandler {
370 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
371 if (!delegate) {
372 continue;
373 }
374 if ([delegate respondsToSelector:_cmd]) {
375 if ([delegate application:application
376 performActionForShortcutItem:shortcutItem
377 completionHandler:completionHandler]) {
378 return;
379 }
380 }
381 }
382}
int BOOL
Definition: windows_types.h:37

◆ application:performActionForShortcutItem:completionHandler: [2/2]

- (void) application: (UIApplication *)  application
performActionForShortcutItem: (UIApplicationShortcutItem *)  shortcutItem
completionHandler: (ios(9.0))  API_AVAILABLE 

Calls all plugins registered for UIApplicationDelegate callbacks.

◆ application:performFetchWithCompletionHandler:

- (BOOL) application: (UIApplication*)  application
performFetchWithCompletionHandler: (void(^)(UIBackgroundFetchResult result))  completionHandler 

Calls all plugins registered for UIApplicationDelegate callbacks in order of registration until some plugin handles the request.

Returns
YES if any plugin handles the request.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

402 :(UIApplication*)application
403 performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
404 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
405 if (!delegate) {
406 continue;
407 }
408 if ([delegate respondsToSelector:_cmd]) {
409 if ([delegate application:application performFetchWithCompletionHandler:completionHandler]) {
410 return YES;
411 }
412 }
413 }
414 return NO;
415}

◆ application:willFinishLaunchingWithOptions:

- (BOOL) application: (UIApplication*)  application
willFinishLaunchingWithOptions: (NSDictionary*)  launchOptions 

Calls all plugins registered for UIApplicationDelegate callbacks.

Returns
NO if any plugin vetos application launch.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

113 :(UIApplication*)application
114 willFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
116 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in [_delegates allObjects]) {
117 if (!delegate) {
118 continue;
119 }
120 if ([delegate respondsToSelector:_cmd]) {
121 if (![delegate application:application willFinishLaunchingWithOptions:launchOptions]) {
122 return NO;
123 }
124 }
125 }
126 return YES;
127}

◆ handleDidBecomeActive:

- (void) handleDidBecomeActive: ("Disallowed in app extensions")  NS_EXTENSION_UNAVAILABLE_IOS
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

194 :(NSNotification*)notification
195 NS_EXTENSION_UNAVAILABLE_IOS("Disallowed in app extensions") {
196 UIApplication* application = [UIApplication sharedApplication];
197 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
198 if (!delegate) {
199 continue;
200 }
201 if ([delegate respondsToSelector:@selector(applicationDidBecomeActive:)]) {
202 [delegate applicationDidBecomeActive:application];
203 }
204 }
205}

◆ handleDidEnterBackground:

- (void) handleDidEnterBackground: ("Disallowed in app extensions")  NS_EXTENSION_UNAVAILABLE_IOS
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

129 :(NSNotification*)notification
130 NS_EXTENSION_UNAVAILABLE_IOS("Disallowed in app extensions") {
131 UIApplication* application = [UIApplication sharedApplication];
132#if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG
133 // The following keeps the Flutter session alive when the device screen locks
134 // in debug mode. It allows continued use of features like hot reload and
135 // taking screenshots once the device unlocks again.
136 //
137 // Note the name is not an identifier and multiple instances can exist.
138 _debugBackgroundTask = [application
139 beginBackgroundTaskWithName:@"Flutter debug task"
140 expirationHandler:^{
141 if (_debugBackgroundTask != UIBackgroundTaskInvalid) {
142 [application endBackgroundTask:_debugBackgroundTask];
143 _debugBackgroundTask = UIBackgroundTaskInvalid;
144 }
145 FML_LOG(WARNING)
146 << "\nThe OS has terminated the Flutter debug connection for being "
147 "inactive in the background for too long.\n\n"
148 "There are no errors with your Flutter application.\n\n"
149 "To reconnect, launch your application again via 'flutter run'";
150 }];
151#endif // FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG
152 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
153 if (!delegate) {
154 continue;
155 }
156 if ([delegate respondsToSelector:@selector(applicationDidEnterBackground:)]) {
157 [delegate applicationDidEnterBackground:application];
158 }
159 }
160}

◆ handleWillEnterForeground:

- (void) handleWillEnterForeground: ("Disallowed in app extensions")  NS_EXTENSION_UNAVAILABLE_IOS
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

162 :(NSNotification*)notification
163 NS_EXTENSION_UNAVAILABLE_IOS("Disallowed in app extensions") {
164 UIApplication* application = [UIApplication sharedApplication];
165#if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG
166 if (_debugBackgroundTask != UIBackgroundTaskInvalid) {
167 [application endBackgroundTask:_debugBackgroundTask];
168 _debugBackgroundTask = UIBackgroundTaskInvalid;
169 }
170#endif // FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG
171 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
172 if (!delegate) {
173 continue;
174 }
175 if ([delegate respondsToSelector:@selector(applicationWillEnterForeground:)]) {
176 [delegate applicationWillEnterForeground:application];
177 }
178 }
179}

◆ handleWillResignActive:

- (void) handleWillResignActive: ("Disallowed in app extensions")  NS_EXTENSION_UNAVAILABLE_IOS
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

181 :(NSNotification*)notification
182 NS_EXTENSION_UNAVAILABLE_IOS("Disallowed in app extensions") {
183 UIApplication* application = [UIApplication sharedApplication];
184 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
185 if (!delegate) {
186 continue;
187 }
188 if ([delegate respondsToSelector:@selector(applicationWillResignActive:)]) {
189 [delegate applicationWillResignActive:application];
190 }
191 }
192}

◆ handleWillTerminate:

- (void) handleWillTerminate: ("Disallowed in app extensions")  NS_EXTENSION_UNAVAILABLE_IOS
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

207 :(NSNotification*)notification
208 NS_EXTENSION_UNAVAILABLE_IOS("Disallowed in app extensions") {
209 UIApplication* application = [UIApplication sharedApplication];
210 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
211 if (!delegate) {
212 continue;
213 }
214 if ([delegate respondsToSelector:@selector(applicationWillTerminate:)]) {
215 [delegate applicationWillTerminate:application];
216 }
217 }
218}

◆ hasPluginThatRespondsToSelector:

- (BOOL) hasPluginThatRespondsToSelector: (SEL)  selector
implementation

Check whether there is at least one plugin responds to the selector.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

79 :(SEL)selector {
80 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in [_delegates allObjects]) {
81 if (!delegate) {
82 continue;
83 }
84 if ([delegate respondsToSelector:selector]) {
85 return YES;
86 }
87 }
88 return NO;
89}

◆ init

- (instancetype) init
implementation

Definition at line 37 of file FlutterPluginAppLifeCycleDelegate.mm.

44 {
45 if (self = [super init]) {
46 std::string cachePath = fml::paths::JoinPaths({getenv("HOME"), kCallbackCacheSubDir});
47 [FlutterCallbackCache setCachePath:[NSString stringWithUTF8String:cachePath.c_str()]];
48#if not APPLICATION_EXTENSION_API_ONLY
49 [self addObserverFor:UIApplicationDidEnterBackgroundNotification
50 selector:@selector(handleDidEnterBackground:)];
51 [self addObserverFor:UIApplicationWillEnterForegroundNotification
52 selector:@selector(handleWillEnterForeground:)];
53 [self addObserverFor:UIApplicationWillResignActiveNotification
54 selector:@selector(handleWillResignActive:)];
55 [self addObserverFor:UIApplicationDidBecomeActiveNotification
56 selector:@selector(handleDidBecomeActive:)];
57 [self addObserverFor:UIApplicationWillTerminateNotification
58 selector:@selector(handleWillTerminate:)];
59#endif
60 _delegates = [NSPointerArray weakObjectsPointerArray];
61 _debugBackgroundTask = UIBackgroundTaskInvalid;
62 }
63 return self;
64}
static FLUTTER_ASSERT_ARC const char * kCallbackCacheSubDir
void setCachePath:(NSString *path)
std::string JoinPaths(std::initializer_list< std::string > components)
Definition: paths.cc:14

◆ IsPowerOfTwo

+ (static BOOL) IsPowerOfTwo (NSUInteger)  x
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

66 {
67 return x != 0 && (x & (x - 1)) == 0;
68}
double x

◆ isSelectorAddedDynamically:

- (BOOL) isSelectorAddedDynamically: (SEL)  selector
implementation

Check whether the selector should be handled dynamically.

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

70 :(SEL)selector {
71 for (const SEL& aSelector : kSelectorsHandledByPlugins) {
72 if (selector == aSelector) {
73 return YES;
74 }
75 }
76 return NO;
77}
static const SEL kSelectorsHandledByPlugins[]

◆ userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:

- (void) userNotificationCenter: (UNUserNotificationCenter*)  center
didReceiveNotificationResponse: (UNNotificationResponse*)  response
withCompletionHandler: (void(^)(void))  completionHandler 
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

305 :(UNUserNotificationCenter*)center
306 didReceiveNotificationResponse:(UNNotificationResponse*)response
307 withCompletionHandler:(void (^)(void))completionHandler {
308 for (id<FlutterApplicationLifeCycleDelegate> delegate in _delegates) {
309 if ([delegate respondsToSelector:_cmd]) {
310 [delegate userNotificationCenter:center
311 didReceiveNotificationResponse:response
312 withCompletionHandler:completionHandler];
313 }
314 }
315}
static SkScalar center(float pos0, float pos1)

◆ userNotificationCenter:willPresentNotification:withCompletionHandler:

- (void) userNotificationCenter: (UNUserNotificationCenter*)  center
willPresentNotification: (UNNotification*)  notification
withCompletionHandler: (void(^)(UNNotificationPresentationOptions options))  completionHandler 
implementation

Definition at line 66 of file FlutterPluginAppLifeCycleDelegate.mm.

292 :(UNUserNotificationCenter*)center
293 willPresentNotification:(UNNotification*)notification
294 withCompletionHandler:
295 (void (^)(UNNotificationPresentationOptions options))completionHandler {
296 for (NSObject<FlutterApplicationLifeCycleDelegate>* delegate in _delegates) {
297 if ([delegate respondsToSelector:_cmd]) {
298 [delegate userNotificationCenter:center
299 willPresentNotification:notification
300 withCompletionHandler:completionHandler];
301 }
302 }
303}

The documentation for this class was generated from the following files: