问题标签 [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 回答
135 浏览

ios - 在未运行时通过静默通知启动 iOS 应用程序

根据苹果的官方文档,如果一个人发送一个“静默通知”,即content-available: 1我们有一个通知

对于后台下载应用程序:应用程序的推送通知到达,通知的有效负载包含值为 1 的内容可用键。系统在机会性时刻唤醒应用程序以开始下载新内容。对于使用 NSURLSession 类在后台下载内容的应用程序,与该会话对象关联的所有任务要么成功完成,要么收到错误。报亭应用程序启动的下载完成。

该文件中还说

应用程序通常在用户看到通知的大致同一时间被唤醒,但这仍然会给您比其他情况更多的时间。

如何解释这个?UIBackgroundMode如果在plist中提交了一个应用程序remote-notification,这是否意味着如果我们发送远程通知,该应用程序实际上是在后台启动的?即使用户重启了 iOS 设备,并且没有启动我们的应用程序?即使用户之前强制退出我们的应用程序?

我的问题是,上述期望有多可靠?有没有人对此有过直接的经验并对此进行了测试,并且在您的经验中 100% 的时间都是正确的?

0 投票
2 回答
695 浏览

android - Launching an Android app in background when it's not running

This question is along the lines of the one I asked for iOS, and not related to this one.

I want to know what are the mechanisms that one can use to launch an app on the Android device that has been force quit, or which hasn't been started since the device was last restarted. I imagine there is no way to launch the app in the foreground, but there should be a way to launch it in the background.

Perhaps we can send some sort of "silent remote notification" which will launch our app in order to process this notification, and which may in turn decide to set a local notification to display to the user.

I am looking for a documented 100% reliable way that is not subject to the whim of the OS, but will actually launch the app in the background, and allow it to do things.

0 投票
2 回答
1442 浏览

ios - 如何确定何时更新 deviceToken 以获取推送通知/如何获取它?

在我的应用程序使用过程中,我在推送通知方面遇到了各种困难,这些问题似乎可以通过卸载来解决。我相信我已将其范围缩小到过期的 deviceTokens。

阅读Apple 的推送通知文档,我发现:

注册成功但未收到通知

. . .

您的应用可能向您的提供商发送了错误的设备令牌。您的应用程序应始终通过在每次启动时向推送服务注册来请求设备令牌。不要从您的应用中存储设备令牌并尝试重复使用它,因为令牌可能会更改。然后,您的提供商应将相同的令牌传递给推送服务。

他们建议在每次启动应用程序时进行注册。他们还建议推送通知的最佳做法是不要这样做,因为用户不喜欢在看到您的应用程序之前就被访问请求轰炸。因此,仅将注册调用放入应用程序委托并不是最佳选择。但是,我没有看到有关 deviceToken 何时过期或如何查看它是否已过期的更多信息。

我能找到的最接近的是关于实例方法的文档UIApplicationisRegisteredForRemoteNotifications

返回值 如果应用注册了远程通知并收到其设备令牌,则返回 YES;如果注册未发生、失败或被用户拒绝,则返回 NO。

我的理解是,这是调用来检查用户是否启用推送通知服务的方法。我了解特定通知类型的权限可以全部关闭,如果用户允许推送通知,这仍然是正确的。但措辞看起来要求应用程序必须使用当前的 deviceToken 进行注册。这是否意味着我可以打电话

在 appDelegate 中,如果它是真的,注册远程通知以更新我服务器上的 deviceToken 并确保我的推送通知不会过期?或者,这个函数是否会遇到与我目前相同的情况,最终 deviceToken 将过期并且此方法将开始返回 false 而不是 true,即使用户允许推送通知?

tl;dr - Apple 表示 deviceTokens 最终会因推送通知而过期。他们建议在每次应用启动时进行注册。我不想用那个警报轰炸新用户。如何确保只有已经接受推送通知的用户才能重新注册?

0 投票
0 回答
683 浏览

ios - iOS 通知创建警报

我正在创建一个 iOS 原生应用程序。我正在使用 XCode 8,在 iOS10 上进行测试,使用 swift 3。

我正在处理 APNS 并发送远程通知(通过 OneSignal)。

通知在我的应用程序之外完美运行(当它在后台时)。但是,当我将应用程序置于前台时,无论我将什么传递给completionHandler()(例如[.alert, .sound],或[.sound][]),系统都会UIAlertController使用通知的内容(标题和正文)创建一个并将其呈现给用户。作为用户界面,这非常令人讨厌,我想有一些方法可以解决它。

我正在实施UNUserNotificationCenterDelegate如下:

我也在实现,UIApplicationDelegate但是那个只是有打印语句。

我收到通知时看到的是: 我为此发送的自定义通知的屏幕截图

我见过其他人遇到过这个问题(如何在 iOS 远程通知上禁用默认通知警报视图?),但不知道他们是如何解决的。大多数帖子只是简单地导致“哦,我修好了”而没有进一步的解释。

如何绕过此通知的显示,无论是使通知静音(如果有效)还是处理完成处理程序或在显示之前拦截通知?

0 投票
0 回答
765 浏览

swift - 即使 content-available = 1,也没有在后台 iOS 14 中调用 didReceiveRemoteNotification

不幸的是,我用完了问题限制,所以我不得不编辑这个以前提出的问题,以获得社区的帮助。问题是 fetchCompletionHandler 在 iOS 14 后台停止工作,收到推送通知但此函数在用户交互之前不会调用。我想知道会出现什么问题,因为我已经添加了 iOS 13 中推荐的标头值,并且推送通知有效负载如下但仍然没有成功;

plist 也是这样的;

有谁知道如何解决这个问题。

0 投票
0 回答
873 浏览

xamarin - Xamarin iOS 丰富的推送通知问题

我正在尝试在 ios 中实现媒体/丰富/增强通知。我有一部 iPhone 6、6s 和 7。我在有效载荷中发送的图像出现在 6 的丰富通知中,但不在 6s 或 7 上。代码似乎只在 CreateDownloadTask 处停止(我已经验证我可以在该代码行之前更改正文文本,但我不能在之后)。我什至有过使用 NSData.FromUrl(url) 的更简单版本,但代码在该行“中断”。奇怪的想法是它并没有真正中断,它显示了最初推送的 Body 元素的文本。即使是 try catch 也不能抓住错误。仅供参考..category 用于我正在构建的自定义 ui。无法弄清楚为什么它只能在 iphone 6 上正常工作(所有手机都在 10.2.x 或更高版本上)

有效载荷是 {"aps":{"alert":{"title":"title", "subtitle":"subtitle","body":"body"}, "category":"pushWithImage","mutable-内容”:1},“pushImage”:“ https://ewcweb.azurewebsites.net/media/boldlythumb.png ”}

我无法发送项目,但以下是服务扩展代码:

在此处输入图像描述

0 投票
1 回答
580 浏览

ios - 在 iOS 中处理静默推送通知的最佳方法是什么

我们需要计算一些数字,并在从服务器接收到静默推送消息时将计算结果显示在本地通知中。

这在应用程序处于活动状态/在后台打开时有效。如果应用程序被杀死/不在后台,这将不起作用。

那么当应用程序关闭并且静默推送到达时,是否有执行任务?

仅供参考,我已启用后台获取。

0 投票
1 回答
2114 浏览

ios - ios swift接收远程通知时打开/关闭振动和声音

我的应用程序中有设置,因为我有一个切换按钮,用于在接收远程通知时打开关闭声音振动。下面是我在注册远程通知的代码AppDelegate

对于声音,我提到了从通知中删除声音,但它似乎不起作用。

Whatsapp 有这个功能,所以肯定会

任何人都可以在这方面提供建议吗?

0 投票
0 回答
115 浏览

ios - iOS 8 currentUserNotificationSettings 返回不正确的类型

我正在尝试在 iOS 8 中检测应用程序的远程通知设置

如果安装了应用程序,用户禁用通知,删除应用程序并重新安装,此代码返回错误值:

在这种情况下类型 == 7 (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert),但在设置中所有通知类型都被禁用。

在高于 8 的操作系统上一切正常。怎么了?

0 投票
1 回答
646 浏览

ios - 选择退出用户的静默推送通知

我想向我的应用用户发送静默通知,以刷新内容。

我已阅读有关向选择退出的用户发送静默通知的各种文章。但是,我们该怎么做呢?大多数选择退出的用户没有设备推送令牌。您如何 ping 设备以发送静默推送有效负载?

我们目前使用推送令牌来选择用户发送远程通知。但是,如果 iOS 8 及更高版本允许向所有应用程序用户发送静默通知,即使他们选择退出,我如何在没有令牌的情况下发送它们?