59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
import Meteor from 'react-native-meteor';
|
|
import PushNotification from 'react-native-push-notification';
|
|
import { AsyncStorage } from 'react-native';
|
|
import Random from 'react-native-meteor/lib/Random';
|
|
import RocketChat from '../lib/rocketchat';
|
|
|
|
try {
|
|
AsyncStorage.getItem('pushId')
|
|
.then((pushId) => {
|
|
if (!pushId) {
|
|
AsyncStorage.setItem('pushId', Random.id());
|
|
}
|
|
});
|
|
} catch (error) {
|
|
// Error saving data
|
|
}
|
|
|
|
PushNotification.configure({
|
|
|
|
// (optional) Called when Token is generated (iOS and Android)
|
|
async onRegister({ token }) {
|
|
|
|
|
|
console.log( 'TOKEN:', token );
|
|
Meteor.Accounts.onLogin(async() => {
|
|
console.log('onLogin');
|
|
RocketChat.registerPushToken(await AsyncStorage.getItem('pushId'), { gcm: token })
|
|
.then(sucesso => console.log('FOI -> ',sucesso))
|
|
.catch(error => console.log('ERRO ->', error));
|
|
});
|
|
},
|
|
|
|
// (required) Called when a remote or local notification is opened or received
|
|
onNotification(notification) {
|
|
console.log( 'NOTIFICATION:', notification );
|
|
},
|
|
|
|
// ANDROID ONLY: GCM Sender ID (optional - not required for local notifications, but is need to receive remote push notifications)
|
|
senderID: '673693445664',
|
|
|
|
// IOS ONLY (optional): default: all - Permissions to register.
|
|
permissions: {
|
|
alert: true,
|
|
badge: true,
|
|
sound: true
|
|
},
|
|
|
|
// Should the initial notification be popped automatically
|
|
// default: true
|
|
popInitialNotification: false,
|
|
|
|
/**
|
|
* (optional) default: true
|
|
* - Specified if permissions (ios) and token (android and ios) will requested or not,
|
|
* - if not, you must call PushNotificationsHandler.requestPermissions() later
|
|
*/
|
|
requestPermissions: true
|
|
});
|