我将ionic2
与FCM
一起使用。
我在应用运行时收到通知。
我需要在应用运行时收到通知。
我该怎么做?
答案 0 :(得分:0)
你可以使用 SELECT @StartDate = COALESCE(table3.StartDate, table2.StartDate, table1.StartDate)
,@EndDate = COALESCE(table4.EndDate, table3.EndDate, table2.EndDate)
FROM table1
LEFT JOIN table2
LEFT JOIN table3
LEFT JOIN table4
来解决你的需求:这里有一些代码如何在ionic-2中初始化
通过终端
安装OneSignal Cordova插件One-Signal
重要提示:请确保按照Ionic Native网站上的说明将提供程序导入app.module.ts,例如
ionic cordova plugin add onesignal-cordova-plugin
npm install --save @ionic-native/onesignal
取自:Ionic-native
现在初始化import {OneSignal} from '@ionic-native/onesignal';
@NgModule({
...
providers: [
...
OneSignal
...
]
})
export class AppModule { }
插件。
然后,将以下代码添加到OneSignal
,以便它在启动时运行,例如在app.ts
方法中运行:
initializeApp()
注意:替换为:
来自OneSignal
来自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();
})
}
答案 1 :(得分:0)
如果您在应用程序打开时已收到通知,我认为您已经有一台服务器将其发送到(与Firebase云功能一样)以及您已配置为在应用程序中接收的插件。
首先,问题出在IOS上,验证生成的项目(在ionic cordova build
之后)是否在XCode中启用了REMOTE PUSH NOTIFICATIONS
。在Android中,默认情况下启用。
可能出现问题的另一个问题是您在有效负载中发送的属性以及您用来接收它的插件。要在插件cordova-plugin-firebase
中显示通知,它必须包含notification
属性title
或body
,如下所示:
{
"notification": {
"title": 'a title',
"body": 'some text'
},
"data": {
"anydata1": 'data1',
"anydata2": 'data2',
"etc": 'etc'
}
}
使用插件phonegap-plugin-push
,规则类似。您必须拥有notification
属性。这一切都取决于插件。