Commit 6caa3b16 authored by Libin Lu's avatar Libin Lu

add navigation example

parent a7ca7331
......@@ -14,6 +14,8 @@ import {
Platform
} from 'react-native';
import { StackNavigator } from 'react-navigation';
import FCM from "react-native-fcm";
import {registerKilledListener, registerAppListener} from "./Listeners";
......@@ -21,7 +23,7 @@ import firebaseClient from "./FirebaseClient";
registerKilledListener();
export default class App extends Component {
class MainPage extends Component {
constructor(props) {
super(props);
......@@ -32,7 +34,7 @@ export default class App extends Component {
}
async componentDidMount(){
registerAppListener();
registerAppListener(this.props.navigation);
FCM.getInitialNotification().then(notif => {
this.setState({
initNotif: notif
......@@ -61,13 +63,14 @@ export default class App extends Component {
FCM.presentLocalNotification({
vibrate: 500,
title: 'Hello',
body: 'Test Notification',
big_text: 'i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large, i am large',
body: 'Click me to detail page,',
big_text: 'Large Text Large Text Large Text Large Text Large Text Large Text Large Text Large Text Large Text Large Text Large Text Large Text Large Text Large Text ',
priority: "high",
sound: "bell.mp3",
large_icon: "https://image.freepik.com/free-icon/small-boy-cartoon_318-38077.jpg",
show_in_foreground: true,
group: 'test',
targetScreen: 'detail',
number: 10
});
}
......@@ -204,6 +207,25 @@ export default class App extends Component {
}
}
class DetailPage extends Component {
render(){
return <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Detail page</Text>
</View>
}
}
export default StackNavigator({
Main: {
screen: MainPage,
},
Detail: {
screen: DetailPage
}
}, {
initialRouteName: 'Main',
});
const styles = StyleSheet.create({
container: {
flex: 1,
......
......@@ -41,7 +41,7 @@ export function registerKilledListener(){
}
// these callback will be triggered only when app is foreground or background
export function registerAppListener(){
export function registerAppListener(navigation){
FCM.on(FCMEvent.Notification, notif => {
console.log("Notification", notif);
......@@ -53,7 +53,11 @@ export function registerAppListener(){
}
if(notif.opened_from_tray){
if(notif.targetScreen === 'detail'){
setTimeout(()=>{
navigation.navigate('Detail')
}, 500)
}
}
if(Platform.OS ==='ios'){
......
......@@ -9,7 +9,8 @@
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "^0.47.2",
"react-native-fcm": "^13.3.2"
"react-native-fcm": "^13.3.3",
"react-navigation": "^1.2.1"
},
"jest": {
"preset": "jest-react-native"
......
......@@ -1332,6 +1332,10 @@ ci-info@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
clamp@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634"
cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
......@@ -2203,6 +2207,10 @@ hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
hoist-non-react-statics@^2.2.0, hoist-non-react-statics@^2.3.1:
version "2.5.0"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40"
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
......@@ -3514,6 +3522,12 @@ path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
path-to-regexp@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
dependencies:
isarray "0.0.1"
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
......@@ -3607,6 +3621,14 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
prop-types@^15.5.10, prop-types@^15.6.0:
version "15.6.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca"
dependencies:
fbjs "^0.8.16"
loose-envify "^1.3.1"
object-assign "^4.1.1"
prop-types@^15.5.6:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
......@@ -3693,9 +3715,37 @@ react-devtools-core@2.3.1:
shell-quote "^1.6.1"
ws "^2.0.3"
react-native-fcm@^13.3.2:
version "13.3.2"
resolved "https://registry.yarnpkg.com/react-native-fcm/-/react-native-fcm-13.3.2.tgz#68515cb22396a88d6e28e8f5d3d466d7ea8dd887"
react-native-dismiss-keyboard@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/react-native-dismiss-keyboard/-/react-native-dismiss-keyboard-1.0.0.tgz#32886242b3f2317e121f3aeb9b0a585e2b879b49"
react-native-drawer-layout-polyfill@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/react-native-drawer-layout-polyfill/-/react-native-drawer-layout-polyfill-1.3.2.tgz#192c84d7a5a6b8a6d2be2c7daa5e4164518d0cc7"
dependencies:
react-native-drawer-layout "1.3.2"
react-native-drawer-layout@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/react-native-drawer-layout/-/react-native-drawer-layout-1.3.2.tgz#b9740d7663a1dc4f88a61b9c6d93d2d948ea426e"
dependencies:
react-native-dismiss-keyboard "1.0.0"
react-native-fcm@^13.3.3:
version "13.3.3"
resolved "https://registry.yarnpkg.com/react-native-fcm/-/react-native-fcm-13.3.3.tgz#6380d3aec6eb748c36a58355fa68eb0774dc81f8"
react-native-safe-area-view@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/react-native-safe-area-view/-/react-native-safe-area-view-0.7.0.tgz#38f5ab9368d6ef9e5d18ab64212938af3ec39421"
dependencies:
hoist-non-react-statics "^2.3.1"
react-native-tab-view@^0.0.74:
version "0.0.74"
resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-0.0.74.tgz#62c0c882d9232b461ce181d440d683b4f99d1bd8"
dependencies:
prop-types "^15.6.0"
react-native@^0.47.2:
version "0.47.2"
......@@ -3784,6 +3834,18 @@ react-native@^0.47.2:
xtend ">=4.0.0 <4.1.0-0"
yargs "^6.4.0"
react-navigation@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-1.2.1.tgz#06cb2c97eb1b2e20bdb4ff7aee1acfa218a1561b"
dependencies:
clamp "^1.0.1"
hoist-non-react-statics "^2.2.0"
path-to-regexp "^1.7.0"
prop-types "^15.5.10"
react-native-drawer-layout-polyfill "^1.3.2"
react-native-safe-area-view "^0.7.0"
react-native-tab-view "^0.0.74"
react-proxy@^1.1.7:
version "1.1.8"
resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment