2

I'm using this library.陣營與反應母語-FCM

我試圖得到推送通知的通知顯示托盤上我的Nexus 5(安卓6.0.1)本地推送通知。使用React Native 0.42,React Native CLI 2.0.1。我正在開發Ubuntu 14.04。

我正在使用firebase。我進入我的控制檯>通知>發送消息>特定設備(我從遠程調試console.log獲得,下面)。

我記錄通知,你可以在代碼中看到,它們確實到達我的設備,因爲我可以在日誌中看到它們。

但是,我不知道如何在通知欄中顯示它們。瀏覽文檔和搜索論壇,似乎他們應該默認顯示。

componentDidMount() { 
     FCM.requestPermissions(); // for iOS 
     FCM.getFCMToken().then(token => { 
      console.log(token) 
      // store fcm token in your server 
     }); 
     this.notificationListener = FCM.on(FCMEvent.Notification, async (notif) => { 
      console.log(notif) 

     }); 
}); 
+0

我有同樣的問題...你有任何解決這個? – Anu

+0

您必須使用FCM.presentLocalNotification()。因爲如果您的應用程序處於活動狀態,則通知處理在您身上,而如果您的應用程序處於非活動狀態,則爲自動顯示它的手機 – MaieonBrix

回答

0

看起來需要「custom_notification」才能在上部托盤中顯示通知。我將此添加到我的有效載荷:

「custom_notification」:{ 「體」: 「人體試驗」, 「稱號」: 「測試題」, 「顏色」: 「#00ACD4」, 「優先」 : 「高」, 「圖標」: 「ic_notif」, 「組」: 「GROUP」, 「ID」: 「ID」, 「show_in_foreground」:真 }

所以,我認爲應用程序必須接收通知,解析出數據並添加此custom_notification參數。

0

如何在構造函數如下:

FCM.requestPermissions(); // for iOS 
FCM.getFCMToken().then(token => { 
    console.log(token) 
    // store fcm token in your server 
}); 

this.notificationListener = FCM.on(FCMEvent.Notification, async (notif) => { 
    // do some component related stuff 
    console.log(notif); 
    //alert(notif.fcm.body); 

    FCM.presentLocalNotification({ 
    id: "UNIQ_ID_STRING",        // (optional for instant notification) 
    title: "My Notification Title",      // as FCM payload 
    body: notif.fcm.body,     // as FCM payload (required) 
    sound: "default",         // as FCM payload 
    priority: "high",         // as FCM payload 
    click_action: "ACTION",        // as FCM payload 
    badge: 10,           // as FCM payload IOS only, set 0 to clear badges 
    number: 10,           // Android only 
    ticker: "My Notification Ticker",     // Android only 
    auto_cancel: true,         // Android only (default true) 
    large_icon: "ic_launcher",       // Android only 
    icon: "ic_launcher",        // as FCM payload, you can relace this with custom icon you put in mipmap 
    big_text: "Show when notification is expanded",  // Android only 
    sub_text: "This is a subText",      // Android only 
    color: "red",          // Android only 
    vibrate: 300,          // Android only default: 300, no vibration if you pass null 
    tag: 'some_tag',         // Android only 
    group: "group",          // Android only 
    picture: "https://google.png",      // Android only bigPicture style 
    ongoing: true,          // Android only 
    my_custom_data: 'my_custom_field_value',    // extra data you want to throw 
    lights: true,          // Android only, LED blinking (default false) 
    show_in_foreground: true         // notification when app is in foreground (local & remote) 
    }); 
}); 

FCM.subscribeToTopic('test_topic');