问题标签 [remote-notifications]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
71 浏览

ios - 一分钟后如何从通知中心删除远程通知?

我正在寻找如何完成上述任务的解决方案,到目前为止还没有成功。

它应该工作的方式:

通知到达设备,一分钟后它会自行删除。

我已经尝试过的:

使用前一个通知 ID 向接收者发送一个静默和非静默 ( content_available: true / false ) 通知,这触发了一个方法,该方法删除了整个通知中心已发送的通知。问题是当应用程序处于终止状态时它不会被调用,只有当应用程序处于后台/前台/暂停时。

有没有合法的方法来解决这个问题?我愿意接受建议和想法!提前致谢!

0 投票
1 回答
704 浏览

ios - 在 iOS 上为远程推送通知的通知操作调用 Web 服务

当用户单击交互式通知上的按钮时,我需要调用 2 个 Web 服务调用。此通知是远程推送通知。当应用程序处于前台或后台时,Web 服务调用工作正常。但是当应用程序处于挂起状态(用户强行终止应用程序)时,行为并不一致。有时它运行良好,即同时调用 Web 服务调用。有时它会失败,我在日志中看到的最常见原因是

通知响应操作的应用程序后台启动操作 vscd.escalate 收到操作响应 { description = "操作无法完成。(BSActionErrorDomain 错误 4.)"; }>

我在功能下仅启用了“远程通知”。“后台提取”未启用。

任何帮助表示赞赏。

0 投票
0 回答
35 浏览

ios - 在 iOS 中单击交互式通知正文时出现崩溃

我已经在应用程序中实现了交互式通知。进入交互式通知有两个操作按钮“确定”和“取消”。

我已经实现了点击特定按钮的代码。但是,当我单击交互式通知正文而不是操作按钮时,该时间应用程序被打开但之后它崩溃了。

如何处理这个问题?我为远程通知的委托方法添加了代码,即'didReceiveRemoteNotification'. 交互式通知是否需要此方法?

请任何人澄清我的两个问题。

谢谢

0 投票
1 回答
96 浏览

ios - 如何在 NotificationServiceExtension 中设置断点?

当应用程序进入终止模式时,是否可以将调试点放入 NotificationServiceExtension。

实际上我想实现的是将远程通知数据保存到数据库中,但在某些随机情况下,数据未保存到数据库中。

帮助将不胜感激。

0 投票
0 回答
201 浏览

ios - 应用程序未使用静默通知从终止状态启动

我想在收到静默通知时将用户位置更新到服务器。我已启用推送通知和后台模式作为远程通知和位置。但是

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler

当应用程序处于终止或未运行状态时,不会调用 my 。我正在通过将位置数据发送到 pubnub 来对此进行测试。主要问题是,当我开始编写这部分代码时,它工作得很好,但过了一段时间它就停止了工作,在那之后直到现在我都在努力解决这个问题。任何帮助将不胜感激。

这是我的代码:

// 在应用程序委托中

//远程通知模式

我正在使用 Firebase 使用邮递员发送通知。

这是我的通知格式:

0 投票
2 回答
3122 浏览

ios - Swift:从远程通知中获取数据

我有一个消息应用程序,它通过推送通知从服务器获取数据。在下图中,您可以看到该过程并检查它出现故障的位置:在此处输入图像描述

我已经对这个问题进行了很多研究,但没有得到一个通用的解决方案。

我得到的一种解决方案是使用此处讨论的静默通知在数据显示之前获取数据并保存。但是一旦我收到静默通知,我就没有找到如何显示来自应用程序委托的通知。

如果我在某个地方在概念上是错误的,请纠正我。

更新:问题之一是application:didReceiveRemoteNotification:fetchCompletionHandler:仅在

  1. 应用程序在前台
  2. 用户点击通知

但是当用户点击通知时,application:didReceiveRemoteNotification:fetchCompletionHandler: 没有被调用,我找不到保存数据的方法,通知中存在。

0 投票
0 回答
61 浏览

ios - iOS MVC - 如果模型需要用户提供更多信息怎么办?

在我的 iOS 应用程序中,有一种情况我希望用户确认他想要接收远程通知(如果他还没有),然后执行注册(使用 iOS 10 之前的 registerUserNotificationSettings 或 iOS 10 的 requestAuthorizationWithOptions / registerUserNotificationSettings +)。然后,模型会在请求更多数据时将设备令牌发送回我的服务器。

我正在尝试使用“干净”的 MVC 模式。当模型需要用户提供额外信息时,以下是否被认为是最佳实践?

  1. 该模型确定远程通知的条件已满足,并确定用户尚未确认需要远程通知。
  2. 模型调用视图控制器上的方法(作为委托)要求用户确认是否需要远程通知。
  3. 由于确认过程是异步发生的,因此视图控制器随后会使用结果调用模型上的方法。
  4. 如果用户确认,模型注册用户并处理结果。这将涉及模型和应用程序委托之间的交互,并且 iOS 可能会向用户显示自己的确认模式,这是可以的。

另一种方法是模型在步骤 2 中将完成处理程序传递给视图控制器,该处理程序被传递并最终在获得结果时由视图控制器执行。(在 iOS 9 之前使用 UIAlertView 有点棘手,但使用 iOS 9+ 的 UIAlertController 非常容易。)

感谢您的任何想法!

0 投票
2 回答
264 浏览

ios - iOS 11.2.5 - didRegisterForRemoteNotificationWithDeviceToken - 无响应

从 OS 11.2.5 开始,我的设备无法注册远程通知(例如,出于静默推送的目的。我在以下代码行中实现了注册过程:

此外,如您所知,您需要实现以下两种方法,以便在 Apple 注册远程通知:

所以我的问题如下:此实现一直有效,直到 Apple OS 更新 11.2.4:didRegisterForRemoteNotificationsWithDeviceToken注册设备后成功调用,如果出现错误,didFailToRegisterForRemoteNotificationsWithError则调用其他方法 -> 一切都很完美!

但从 OS 11.2.5 开始,我再也没有得到 Apple 的回应。我花了很多时间研究这个问题。在 Apple 发布 OS 11.2.6 之后,它又像魅力一样工作了 -> 我完全糊涂了。

有人知道这是否是 OS 11.2.5 中的一个已知问题?- 谢谢亚历克斯

0 投票
1 回答
2713 浏览

swift - iOS / FCM - 如何使用有效负载中的图像名称将 XCAsset 文件夹中的图像显示为通知附件?

我正在为通过 FCM 发送的天气应用程序开发丰富的通知。

首先,我想通知您,我的通知已通过 APNS 和 FCM 成功发送和接收。

我正在使用PusherPostman来测试一切。

语境

这是我发送的有效载荷Postman

我喜欢这种Payload格式,我知道它很有效,我觉得它很清晰,也很容易理解。

说明:

用户可以通过将城市添加为收藏城市来订阅主题。主题是城市代码。

data部分是从服务器发送的天气数据。

这是我的didReceive方法:

我直接使用 Bundle 中的图像名称进行测试,但它不起作用。

问题

如何将 xcassets 文件夹中 UIImage 的 PNG 表示形式保存到磁盘?

实际上,"attch": "7a"来自 Payload 的键/值是作为附件显示在通知中的天气图像的代码。我已将所有图像保存在我的 xcassets 文件夹中(具有相同的代号)

我需要:

  • 获取 Notification 中收到的图片名称
  • 获取 xcassets 文件夹中的关联图像
  • 将图像的 PNG 表示复制到 FileManager(磁盘)
  • 将其设置为通知的附件

编辑:已解决!

我的问题得到了解决,这要归功于另一个问题的答案,该问题甚至没有被标记为已接受的答案,但它帮助了我,对于这个问题。

确实,人们可能想做和我一样的事情,或者甚至没有想过使用通知可以实现什么。

在我阅读的所有示例或指南中,它们解释了如何下载图像并将其设置为通知的附件。

但也可以使用 xcassets 文件夹中的本地图像来完成。人们现在可以了解如何将其应用于此特定目的。

赞成票的数量向我表明,人们和我处于同样的境地,他们可能从这个问题/答案中学到了东西。

这是我最终的didReceive方法:

我在 SO 上找到的方法:

我希望它对你有所帮助。

0 投票
2 回答
1291 浏览

ios - iOS RemoveDeliveredNotifications(string[] identifier) 在后台应用时不会删除通知

也许有人可以帮助我。在我的应用程序中,我使用推送通知来通知用户一条新消息已写入数据库。一位用户可以接受通知并处理内容或将其关闭。如果用户接受它,则会向所有其他较早收到通知的设备发送静默推送。这是我处理此静默通知的代码:

问题是通知在通知中心仍然可见,直到应用程序被带到前台。但随后它被删除。

有没有办法强制该方法立即删除通知,而不仅仅是在(重新)打开应用程序时?