2017-06-21 19 views
6

Tôi đang sử dụng ionic2 với FCM.nhận thông báo khi ứng dụng bị đóng bằng ionic

Tôi nhận được thông báo khi ứng dụng đang chạy.

Tôi cần nhận thông báo khi ứng dụng đang chạy hay không.

Tôi làm cách nào để thực hiện việc này?

+0

hãy xây dựng thêm, cho chúng tôi biết bạn gửi thông báo như thế nào? và mã bạn đang thực hiện. – George

Trả lời

0

Bạn có thể sử dụng One-Signal mà giải quyết được nhu cầu của bạn: đây là chút mã làm thế nào để khởi tạo trong ion-2

Cài đặt plugin OneSignal Cordova thông qua Terminal

ionic cordova plugin add onesignal-cordova-plugin 
npm install --save @ionic-native/onesignal 

Lưu ý quan trọng: hãy đảm bảo rằng bạn nhập nhà cung cấp vào app.module.ts của bạn như được hướng dẫn trên trang web Gốc Ionic, ví dụ:

import {OneSignal} from '@ionic-native/onesignal'; 
@NgModule({ 
    ... 
    providers: [ 
    ... 
    OneSignal 
    ... 
    ] 

}) 
export class AppModule { } 

Taken từ: Ionic bản địa

Bây giờ init plugin OneSignal.

Sau đó, thêm đoạn mã sau vào app.ts của bạn để nó chạy khi khởi động, ví dụ như bên trong initializeApp() phương pháp:

import {OneSignal} from '@ionic-native/onesignal'; 
import {Platform} from 'ionic-angular'; 

constructor(private _OneSignal: OneSignal, private _platform: Platform) { 
    startApp(); 
} 

    startApp() { 
    this._platform.ready().then(() => { 
     this._OneSignal.startInit(appId, googleProjectId); 
     this._OneSignal.inFocusDisplaying(this._OneSignal.OSInFocusDisplayOption.Notification); 
     this._OneSignal.setSubscription(true); 
     this._OneSignal.handleNotificationReceived().subscribe(() => { 
     // handle received here how you wish. 
     }); 
     this._OneSignal.handleNotificationOpened().subscribe(() => { 
     // handle opened here how you wish. 
     }); 
     this._OneSignal.endInit();   
    })  
    } 

Note: thay thế trong bạn:

AppID từ OneSignal

googleProjectId từ FCM

0

Nếu bạn đã nhận được thông báo khi ứng dụng đang mở, tôi cho rằng bạn đã có một máy chủ để gửi nó đến (như với các Chức năng đám mây của Firebase) và một plugin mà bạn đã cấu hình để nhận trong ứng dụng của mình.

Trước tiên, trường hợp sự cố xảy ra trên iOS, hãy xác minh xem dự án đã tạo (sau ionic cordova build) có bật tính năng REMOTE PUSH NOTIFICATIONS trong XCode hay không. Trong Android, tính năng này được bật theo mặc định.

Một điều khác có thể là vấn đề là thuộc tính bạn đang gửi trong tải trọng của bạn VÀ plugin bạn đang sử dụng để nhận nó. Đối với một thông báo hiển thị trong các plugin cordova-plugin-firebase nó phải có một tài sản notification với title hoặc body, như thế này:

{ "notification": { "title": 'a title', "body": 'some text' }, "data": { "anydata1": 'data1', "anydata2": 'data2', "etc": 'etc' } }

Với plugin phonegap-plugin-push các quy tắc tương tự. Bạn phải có thuộc tính notification. Tất cả phụ thuộc vào plugin.

Các vấn đề liên quan