diff --git a/src/ios/Plugins/AppDelegate+JPush.m b/src/ios/Plugins/AppDelegate+JPush.m index 542ea00..b52c0ba 100644 --- a/src/ios/Plugins/AppDelegate+JPush.m +++ b/src/ios/Plugins/AppDelegate+JPush.m @@ -9,12 +9,30 @@ #import "AppDelegate+JPush.h" #import "JPushPlugin.h" #import "JPUSHService.h" +#import @implementation AppDelegate (JPush) --(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ - [JPushPlugin setLaunchOptions:launchOptions]; - return [super application:application didFinishLaunchingWithOptions:launchOptions]; ++(void)load{ + Method origin; + Method swizzle; + origin=class_getInstanceMethod([self class],@selector(init)); + swizzle=class_getInstanceMethod([self class], @selector(init_plus)); + method_exchangeImplementations(origin, swizzle); +} + +-(instancetype)init_plus{ + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(applicationDidLaunch:) + name:@"UIApplicationDidFinishLaunchingNotification" + object:nil]; + return [self init_plus]; +} + +-(void)applicationDidLaunch:(NSNotification*)notification{ + if (notification) { + [JPushPlugin setLaunchOptions:notification.userInfo]; + } } - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {