Cordova - 忽略通知将丢失其中的数据

问题描述 投票:0回答:3
在使用 ionic 框架和 ngCordova 插件进行开发时,我在 Android 上使用 cordova 时遇到了不良行为。 借助 PushPlugin 插件,我能够使用 GCM 接收通知。 当应用程序处于后台并且收到通知时,我可以在不进入应用程序的情况下将其关闭,但是,当我启动应用程序时,我不知道收到的新数据(并关闭) 有没有办法仍然保留数据?我需要它,因为它不仅是通知,而且是我稍后需要在 UI 上显示的数据。

cordova cordova-plugins ionic-framework phonegap-pushplugin
3个回答
1
投票
不幸的是,这是不可能的。如果用户单击通知,您可以执行一些代码。如果用户拒绝它,您的应用程序将永远不会知道。

我如何构建该功能是拥有一个数据库,其中包含用户需要查看的所有信息。当用户看到信息(通过打开通知或其他方式)时,调用服务器并将该内容标记为已读。

这样,您就可以在应用程序启动时调用服务器来获取向用户显示的内容列表。如果单击通知,您可以直接将它们带到该数据,然后访问服务器并将其标记为“已查看”或其他。

希望有帮助,祝你好运!


0
投票
如果应用程序处于后台,您可以通过修改插件来缓存来自服务器的内容来实现此行为。这样,即使通知被忽略,您也会收到消息。请阅读我关于修改插件的

answer

通过添加

PushPlugin.sendExtras(extras)修改此功能

,无论应用程序是在前台还是后台都会发送数据。

protected void onMessage(Context context, Intent intent) { Log.d(TAG, "onMessage - context: " + context); Bundle extras = intent.getExtras(); if (extras != null) { if (PushPlugin.isInForeground()) { extras.putBoolean("foreground", true); } else { extras.putBoolean("foreground", false); if (extras.getString("message") != null && extras.getString("message").length() != 0) { createNotification(context, extras); } } // call sendExtras always PushPlugin.sendExtras(extras); } }
    

0
投票
“内容可用”:

1

© www.soinside.com 2019 - 2024. All rights reserved.