From 6caa3b164ea8dc4ee6a47c48990fc8a4b68540b4 Mon Sep 17 00:00:00 2001 From: Libin Lu Date: Tue, 27 Feb 2018 14:13:40 -0500 Subject: [PATCH] add navigation example --- Examples/simple-fcm-client/app/App.js | 30 +++++++-- Examples/simple-fcm-client/app/Listeners.js | 8 ++- Examples/simple-fcm-client/package.json | 3 +- Examples/simple-fcm-client/yarn.lock | 68 ++++++++++++++++++++- 4 files changed, 99 insertions(+), 10 deletions(-) diff --git a/Examples/simple-fcm-client/app/App.js b/Examples/simple-fcm-client/app/App.js index 22802dc..1f53fca 100644 --- a/Examples/simple-fcm-client/app/App.js +++ b/Examples/simple-fcm-client/app/App.js @@ -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 + Detail page + + } +} + +export default StackNavigator({ + Main: { + screen: MainPage, + }, + Detail: { + screen: DetailPage + } +}, { + initialRouteName: 'Main', +}); + const styles = StyleSheet.create({ container: { flex: 1, diff --git a/Examples/simple-fcm-client/app/Listeners.js b/Examples/simple-fcm-client/app/Listeners.js index 754a08d..4268242 100644 --- a/Examples/simple-fcm-client/app/Listeners.js +++ b/Examples/simple-fcm-client/app/Listeners.js @@ -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'){ diff --git a/Examples/simple-fcm-client/package.json b/Examples/simple-fcm-client/package.json index e2133cf..2c97ee1 100644 --- a/Examples/simple-fcm-client/package.json +++ b/Examples/simple-fcm-client/package.json @@ -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" diff --git a/Examples/simple-fcm-client/yarn.lock b/Examples/simple-fcm-client/yarn.lock index c54a9b3..4232678 100644 --- a/Examples/simple-fcm-client/yarn.lock +++ b/Examples/simple-fcm-client/yarn.lock @@ -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" -- 2.26.2