[iOS] Rework push notification methods usage
Moved AppDelegate push notifications methods implementation to 'GODOT_ENABLE_PUSH_NOTIFICATIONS' which can be used in plugins to implement APNS plugins.
This commit is contained in:
parent
6bea301533
commit
366ce084f4
2 changed files with 27 additions and 3 deletions
|
@ -31,6 +31,7 @@
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
typedef NSObject<UIApplicationDelegate> ApplicationDelegateService;
|
typedef NSObject<UIApplicationDelegate> ApplicationDelegateService;
|
||||||
|
typedef void (^APNSNotification)(UIBackgroundFetchResult);
|
||||||
|
|
||||||
@interface GodotApplicalitionDelegate : NSObject <UIApplicationDelegate>
|
@interface GodotApplicalitionDelegate : NSObject <UIApplicationDelegate>
|
||||||
|
|
||||||
|
@ -38,4 +39,27 @@ typedef NSObject<UIApplicationDelegate> ApplicationDelegateService;
|
||||||
|
|
||||||
+ (void)addService:(ApplicationDelegateService *)service;
|
+ (void)addService:(ApplicationDelegateService *)service;
|
||||||
|
|
||||||
|
- (void)godot:(UIApplication *)application receivedNotificationToken:(NSData *)deviceToken;
|
||||||
|
- (void)godot:(UIApplication *)application receivedNotificationError:(NSError *)error;
|
||||||
|
- (void)godot:(UIApplication *)application receivedNotification:(NSDictionary *)userInfo completion:(APNSNotification)completionHandler;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
#define GODOT_ENABLE_PUSH_NOTIFICATIONS \
|
||||||
|
@interface GodotApplicalitionDelegate (PushNotifications) \
|
||||||
|
@end \
|
||||||
|
@implementation GodotApplicalitionDelegate (PushNotifications) \
|
||||||
|
-(void)application : (UIApplication *)application \
|
||||||
|
didRegisterForRemoteNotificationsWithDeviceToken : (NSData *)deviceToken { \
|
||||||
|
[self godot:application receivedNotificationToken:deviceToken]; \
|
||||||
|
} \
|
||||||
|
-(void)application : (UIApplication *)application \
|
||||||
|
didFailToRegisterForRemoteNotificationsWithError : (NSError *)error { \
|
||||||
|
[self godot:application receivedNotificationError:error]; \
|
||||||
|
} \
|
||||||
|
-(void)application : (UIApplication *)application \
|
||||||
|
didReceiveRemoteNotification : (NSDictionary *)userInfo \
|
||||||
|
fetchCompletionHandler : (APNSNotification)completionHandler { \
|
||||||
|
[self godot:application receivedNotification:userInfo completion:completionHandler]; \
|
||||||
|
} \
|
||||||
|
@end
|
||||||
|
|
|
@ -302,7 +302,7 @@ static NSMutableArray<ApplicationDelegateService *> *services = nil;
|
||||||
|
|
||||||
// MARK: Remote Notification
|
// MARK: Remote Notification
|
||||||
|
|
||||||
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
- (void)godot:(UIApplication *)application receivedNotificationToken:(NSData *)deviceToken {
|
||||||
for (ApplicationDelegateService *service in services) {
|
for (ApplicationDelegateService *service in services) {
|
||||||
if (![service respondsToSelector:_cmd]) {
|
if (![service respondsToSelector:_cmd]) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -312,7 +312,7 @@ static NSMutableArray<ApplicationDelegateService *> *services = nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
|
- (void)godot:(UIApplication *)application receivedNotificationError:(NSError *)error {
|
||||||
for (ApplicationDelegateService *service in services) {
|
for (ApplicationDelegateService *service in services) {
|
||||||
if (![service respondsToSelector:_cmd]) {
|
if (![service respondsToSelector:_cmd]) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -322,7 +322,7 @@ static NSMutableArray<ApplicationDelegateService *> *services = nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
|
- (void)godot:(UIApplication *)application receivedNotification:(NSDictionary *)userInfo completion:(APNSNotification)completionHandler {
|
||||||
for (ApplicationDelegateService *service in services) {
|
for (ApplicationDelegateService *service in services) {
|
||||||
if (![service respondsToSelector:_cmd]) {
|
if (![service respondsToSelector:_cmd]) {
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in a new issue