【问题标题】:Open app when push is received收到推送时打开应用
【发布时间】:2016-12-08 00:03:59
【问题描述】:

我正在使用 Cordova/PhoneGap+Ionic2 编写一个 Android+iOS 应用程序,我想在收到推送通知时打开该应用程序。

如果应用是后台,我如何在收到推送后打开它?我希望用户无需按下按钮即可实现这一点 - 就像 Skype 在您接到来电时所做的那样。

这是我当前的推送通知处理程序:

// Handle received Push
this.push.rx.notification().subscribe((msg) => {
    alert(msg.title + ': ' + msg.text);
});

这可行,但直到用户单击收到的通知后才会发生警报操作。我想自动将用户带入应用程序,然后在收到通知时向他们展示我自己的界面。

我查看了How to bring a Cordova Android application to foreground or start and bring to foreground once connected (and turn screen on) programmatically on GCMhttps://github.com/MobileChromeApps/cordova-plugin-background-app - 但在用户单击调用此插件的通知之前,我仍然没有发生任何事件,因此无法使用它。

【问题讨论】:

    标签: cordova ionic-framework


    【解决方案1】:

    即使有几个插件可以很好地处理 GCM / FCM 流程,您也需要使用原生插件,但其中大部分(至少是我信任的插件)都无法处理您想要的。

    在 Android 中,您可以使用 BroadcastReceiver 并在此处决定是否显示通知,然后决定是否启动 App Intent。

    在 iOS 中,您可以使用 didReceiveRemoteNotification 方法并决定在其中做什么。

    在这两种情况下,我认为在没有任何用户操作的情况下显示应用程序可能被视为糟糕的 UX 体验(即使可能)。例如,对于 iOS,他们从未在其 Guide 处理应用程序状态转换中提及此选项

    【讨论】:

    • 感谢您指出这些事件,它们听起来像我正在寻找的东西,我会调查它们。回复:糟糕的用户体验,我倾向于同意它似乎是侵入性的,但后来我想到了 Skype,它似乎做同样的事情。像 Skype 一样,我的意图不仅仅是在推送时打开应用程序,而是显示一个允许他们选择下一步要采取的操作的屏幕。希望这不会是侵入性的,并且考虑到 Skype 这样做似乎是可能的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2013-04-16
    • 2017-11-21
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多