AppDelegate.m 4.29 KB
Newer Older
Lidan Hifi's avatar
Lidan Hifi committed
1 2 3 4 5 6 7 8 9 10 11
/**
 * Copyright (c) 2015-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */

#import "AppDelegate.h"
#import "RCTRootView.h"
Lidan Hifi's avatar
Lidan Hifi committed
12
#import "RNNotifications.h"
Lidan Hifi's avatar
Lidan Hifi committed
13

14 15
#import <PushKit/PushKit.h>

Lidan Hifi's avatar
Lidan Hifi committed
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSURL *jsCodeLocation;

  /**
   * Loading JavaScript code - uncomment the one you want.
   *
   * OPTION 1
   * Load from development server. Start the server from the repository root:
   *
   * $ npm start
   *
   * To run on device, change `localhost` to the IP address of your computer
   * (you can get this by typing `ifconfig` into the terminal and selecting the
   * `inet` value under `en0:`) and make sure your computer and iOS device are
   * on the same Wi-Fi network.
   */

36
  jsCodeLocation = [NSURL URLWithString:@"http://172.31.9.91:8081/index.ios.bundle?platform=ios&dev=true"];
Lidan Hifi's avatar
Lidan Hifi committed
37 38 39 40 41 42 43 44 45 46 47 48

  /**
   * OPTION 2
   * Load from pre-bundled file on disk. The static bundle is automatically
   * generated by the "Bundle React Native code and images" build step when
   * running the project on an actual device or running the project on the
   * simulator in the "Release" build configuration.
   */

//   jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
Lidan Hifi's avatar
Lidan Hifi committed
49
                                                      moduleName:@"NotificationsExampleApp"
Lidan Hifi's avatar
Lidan Hifi committed
50 51 52 53 54 55 56 57
                                               initialProperties:nil
                                                   launchOptions:launchOptions];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
Lidan Hifi's avatar
Lidan Hifi committed
58

Lidan Hifi's avatar
Lidan Hifi committed
59 60 61
  return YES;
}

62 63 64 65 66 67 68 69 70 71 72 73 74

// PushKit API Example
- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type
{
  [RNNotifications didUpdatePushCredentials:credentials forType:type];
}

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type
{
  [RNNotifications didReceiveRemoteNotification:payload.dictionaryPayload];
}


Lidan Hifi's avatar
Lidan Hifi committed
75 76 77
// Required to register for notifications
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
78
  [RNNotifications didRegisterUserNotificationSettings:notificationSettings];
Lidan Hifi's avatar
Lidan Hifi committed
79
}
80

Lidan Hifi's avatar
Lidan Hifi committed
81 82
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
83
  [RNNotifications didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
Lidan Hifi's avatar
Lidan Hifi committed
84 85 86 87
}


// Required for the notification event.
88
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)notification {
Lidan Hifi's avatar
Lidan Hifi committed
89
  [RNNotifications didReceiveRemoteNotification:notification];
Lidan Hifi's avatar
Lidan Hifi committed
90 91 92 93 94
}

// Required for the localNotification event.
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
Lidan Hifi's avatar
Lidan Hifi committed
95
  [RNNotifications didReceiveLocalNotification:notification];
Lidan Hifi's avatar
Lidan Hifi committed
96 97 98
}


99 100 101
// Required for the notification actions.
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void (^)())completionHandler
{
102
  [RNNotifications handleActionWithIdentifier:identifier forLocalNotification:notification withResponseInfo:responseInfo completionHandler:completionHandler];
103 104 105 106
}

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void (^)())completionHandler
{
107
  [RNNotifications handleActionWithIdentifier:identifier forRemoteNotification:userInfo withResponseInfo:responseInfo completionHandler:completionHandler];
108 109 110
}


Lidan Hifi's avatar
Lidan Hifi committed
111 112

@end