Как включить FireBase уведомления в ионном приложении Android - PullRequest
0 голосов
/ 31 января 2019

Я хочу создать приложение и использовать FireBase для уведомлений. Я провел большой поиск в Google, но не нашел ни одного хорошего руководства и решения, все, что я пробовал, заканчивалось ошибками.я пробовал ионные документы, но они все запутались после того, как на ионах v4 они показывают все о v4 у меня почти закончилось приложение, только эта штука осталась.Я буду признателен за любую помощь.Есть идеи, как поступить?Скорее всего, я не настраиваю Firebase должным образом.Я поместил google-services.json в корневой каталог, никаких проблем там нет.но после этого все из моего понимания

 AN ERROR OCCURRED WHILE RUNNING ionic cordova plugin add phonegap-plugin-push --variable SENDER_ID-150482406038 --SAVE EXIT CODE 1

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Получил эту Работу.Спасибо всем за помощь! использованные ссылки -

работает для

  1. ionic 3.20.1
  2. cordova 8.1.2

шаги, за которыми я следовал

  1. Удалил мою платформу Android с помощью ionic cordova platform removeandroid, затем я создал ее еще раз ionic cordova platform add android.просто чтобы избежать любых ошибок, которые могут быть с моей старой версией Android.

  2. Получил google-services.json и поместил его в rootDirectoryOfApp\platforms\android\app

  3. тогдая запускаю $ ionic cordova plugin add phonegap-plugin-push $ npm install --save @ionic-native/push@4
  4. Редактировать config.xml искать <platform name="android"> под этим я написал <resource-file src="google-services.json" target="app/google-services.json" />
  5. Редактировать package.json искать "phonegap-plugin-push" и редактировать его что-то вродеэто

    "phonegap-plugin-push": {
        "ANDROID_SUPPORT_V13_VERSION": "27.+", // already there
        "FCM_VERSION": "11.6.2", // already there
        "SENDER_ID": "numeric key obtain from firebase console" // added
      },
    
  6. Открыть app.module.ts и импортировать import { Push } from '@ionic-native/push'; добавить Push под провайдерами там ... providers: [ StatusBar, SplashScreen, Push, ....

  7. Затем в провайдере яимпортировал import { Push, PushObject, PushOptions } from '@ionic-native/push';, затем в конструкторе я добавил private push: Push, и в классе этого провайдера я написал функцию, как показано ниже

    pushSetup () {

    // to check if we have permission
    this.push.hasPermission()
    
    .then((res: any) => {
    if (res.isEnabled) {
    console.log('We have permission to send push notifications');
    } else {
    
    console.log('We do not have permission to send push notifications');
    }
    });    
    // Create a channel (Android O and above). You'll need to provide the id, description and importance properties.
    
    this.push.createChannel({
    id: "testchannel1",
    description: "My first test channel",
    // The importance property goes from 1 = Lowest, 2 = Low, 3 = Normal, 4 = High and 5 = Highest.
    importance: 3
    
    }).then(() => console.log('Channel created'));
    // Delete a channel (Android O and above)
    this.push.deleteChannel('testchannel1').then(() => console.log('Channel deleted'));  
    
    
    
    // Return a list of currently configured channels
    this.push.listChannels().then((channels) => console.log('List of channels', channels))    
    // to initialize push notifications  
    
    const options: PushOptions = {
    android: {
    senderID:"150482406038",
    },
    
    ios: {
    alert: 'true',
     badge: true,
    sound: 'false'
    },     
    };
    
    const pushObject: PushObject = this.push.init(options);     
    pushObject.on('notification').subscribe((notification: any) => console.log('Received a notification', notification));     
    pushObject.on('registration').subscribe((registration: any) => console.log('Device registered', registration));     
    pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error));
    }
    
  8. Теперь импортировал того провайдера, где я хочу его использовать, и вызвал эту функцию оттуда.но звоните только после
    this.platform.ready().then(() => { или при успешном входе в систему.

Я поделился этим, потому что нашел это немного сложным и запутался в путеводителях по сети Пожалуйста, прокомментируйте, если вы нашли это неправильно или не работает в вашем случае.

0 голосов
/ 31 января 2019

Я использовал этот учебник: https://medium.com/@felipepucinelli/how-to-add-push-notifications-in-your-cordova-application-using-firebase-69fac067e821 и Android push-уведомления работали из коробки.Удачи!

^ вы можете попробовать плагин cordova-plugin-firebase, как упомянул Chrillewoodz

...