0

您好我正在尝试在 Android 状态栏中显示推送通知。我正在使用ibm-mfp-push 插件和这段代码:

onDeviceReady: function() {
        app.receivedEvent('deviceready');

          BMSClient.initialize("xxxxx","xxxxx");

        MFPPush.registerDevice({}, function(data){

            alert("Success ::" + data)
        }, function(error){
            alert("Failure ::" + error);
        }); 

        var notificationsCallback = function(notification){
            alert("Incoming notification :: " + JSON.stringify(notification))           
        };

        MFPPush.registerNotificationsCallback(notificationsCallback);

    }

我正确收到通知,但我不知道如何在状态栏中显示此通知。有任何想法吗?

谢谢

4

2 回答 2

1

我已经找到了解决方案。对不起,如果我不清楚这个问题。我的问题是我无法让通知出现在通知阴影中。

当应用程序在前台时,通知对我来说就像 javascript 警报一样,而当应用程序在后台时,在放到前台之前什么都不会出现。

我尝试使用各种本地通知插件,但是当事件 onDeviceReady 已满时,这些插件未加载。

对于那些不知道插件的人,我留下了一些文档:https ://www.npmjs.com/package/ibm-mfp-push

解决方案是在 onDeviceReady 事件中添加:

CDVMFPPush.setIgnoreIncomingNotifications(布尔忽略);(被忽略==真)

该功能在文档中描述为:

默认情况下,推送通知插件通过将所有传入的推送通知通过隧道传送到 JavaScript 回调来处理它们。如果您想在本机代码中手动处理传入的推送通知,请使用此方法覆盖插件的默认行为。

BMSClient 是一个单例,用作bluemix 客户端-服务器通信的入口点。在我的例子中,我使用它来初始化指定两个参数的客户端:

BMSClient.initialize("APPROUTE","APPGUID");

谢谢您的回答。很高兴属于这个伟大的社区。

问候

于 2016-05-20T16:58:13.973 回答
1

如果您的应用程序在远程通知到达时正在运行,它将不会自动显示在通知阴影中,因为它将立即由应用程序处理。只有在通知到达时应用程序未运行时,您才会在通知栏看到通知。

也就是说,您可以添加自己的逻辑,以便在收到远程通知后将项目添加到通知栏。您需要在您的通知回调中添加此逻辑。您可以使用现有的本地通知插件 ( https://www.npmjs.com/package/de.appplant.cordova.plugin.local-notification ) 或使用https://developer.android.com自行实施/reference/android/app/Notification.Builder.html

于 2016-05-20T16:19:32.813 回答