如果用户禁用了推送通知,如何从混合应用程序中检查?

Posted

技术标签:

【中文标题】如果用户禁用了推送通知,如何从混合应用程序中检查?【英文标题】:How to check from hybrid app if the user has disabled push notifications? 【发布时间】:2014-04-17 12:30:05 【问题描述】:

我已经实现了对 Worklight 应用程序的推送通知。如果用户在操作系统级别禁用了应用程序的推送通知,则要求之一是显示一条消息。

有没有办法检测到这种变化? Worklight 的方法 isPushEnabled检查是否支持推送通知。如果 IBM® Worklight® javascript API 在当前环境中支持推送通知,则返回 true。

即使我禁用了 AMS 应用程序的推送,此方法仍然返回 true。

我还在 Cordova 级别搜索了一个解决方案,但到目前为止还没有运气。

谢谢

【问题讨论】:

【参考方案1】:

如果用户在登录/注销时订阅和取消订阅,您始终可以使用 API WL.Client.Push.isSubscribed(alias) 来检查当前用户是否已订阅。如果用户未订阅,您可以弹出一个警告,要求他们订阅并通知他们“如果您已禁用此应用程序的推送通知,您可以通过转到设置-> 通知-> AppName 重新启用推送”。

如果不编写本机代码,我不知道是否可以检查用户是否在操作系统级别禁用了推送。不过,我已经看到了一些本地编写的解决方案,例如这里有一些针对 ios 的讨论:

Enable/Disable Apple Push Notification from iPhone app?

【讨论】:

以上是关于如果用户禁用了推送通知,如何从混合应用程序中检查?的主要内容,如果未能解决你的问题,请参考以下文章

从设置应用程序 ios 获取推送通知启用/禁用事件?

如何确定用户是不是尚未注册接收推送通知和/或他们的设置是不是被禁用

如果用户在 IOS 中禁用了后台应用刷新,为啥不发送推送通知?

实现细粒度启用/禁用推送通知

如何正确禁用/启用推送通知

在 NotificationService 中禁用从 didReceive 接收推送