Created
June 7, 2016 12:48
-
-
Save mosluce/068cada921c2f8c95200a73907b37d45 to your computer and use it in GitHub Desktop.
React Push (iOS) : register 沒反應
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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" | |
#import "RCTPushNotificationManager.h" | |
@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. | |
*/ | |
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; | |
/** | |
* 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 | |
moduleName:@"D5" | |
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]; | |
return YES; | |
} | |
// Required to register for notifications | |
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings | |
{ | |
[RCTPushNotificationManager didRegisterUserNotificationSettings:notificationSettings]; | |
} | |
// Required for the register event. | |
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken | |
{ | |
[RCTPushNotificationManager didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; | |
} | |
// Required for the notification event. | |
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)notification | |
{ | |
[RCTPushNotificationManager didReceiveRemoteNotification:notification]; | |
} | |
// Required for the localNotification event. | |
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification | |
{ | |
[RCTPushNotificationManager didReceiveLocalNotification:notification]; | |
} | |
@end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Sample React Native App | |
* https://github.com/facebook/react-native | |
* @flow | |
*/ | |
import React, { Component } from 'react'; | |
import { | |
AppRegistry, | |
StyleSheet, | |
Text, | |
View, | |
TouchableHighlight, | |
PushNotificationIOS | |
} from 'react-native'; | |
class D5 extends Component { | |
constructor(props) { | |
super(props); | |
} | |
requestPermissions() { | |
PushNotificationIOS.requestPermissions(); | |
PushNotificationIOS.addEventListener('register', (token) => { | |
console.log(token); | |
}); | |
} | |
render() { | |
return ( | |
<View style={styles.container}> | |
<Text style={styles.welcome}> | |
Welcome to React Native! | |
</Text> | |
<Text style={styles.instructions}> | |
To get started, edit index.ios.js | |
</Text> | |
<Text style={styles.instructions}> | |
Press Cmd+R to reload,{'\n'} | |
Cmd+D or shake for dev menu | |
</Text> | |
<TouchableHighlight | |
style={{backgroundColor: 'rgb(171, 0, 0)'}} | |
onPress={this.requestPermissions.bind(this)}> | |
<Text style={{color: 'blue'}}>Press Me!</Text> | |
</TouchableHighlight> | |
</View> | |
); | |
} | |
} | |
const styles = StyleSheet.create({ | |
container: { | |
flex: 1, | |
justifyContent: 'center', | |
alignItems: 'center', | |
backgroundColor: '#F5FCFF', | |
}, | |
welcome: { | |
fontSize: 20, | |
textAlign: 'center', | |
margin: 10, | |
}, | |
instructions: { | |
textAlign: 'center', | |
color: '#333333', | |
marginBottom: 5, | |
}, | |
}); | |
AppRegistry.registerComponent('D5', () => D5); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment