标签: silent-notification

仅在设备正在充电和/或应用程序是前台时才会发送静音推送通知

我已经实现了静默推送通知,但我注意到了一些奇怪的行为.静默推送通知通过以下方式处理:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
Run Code Online (Sandbox Code Playgroud)

如果设备正在充电(即连接电缆)和/或我的应用程序是前台,则似乎只接收静音推送消息.

如果我断开设备与充电器(或Mac)的连接,则除非应用程序是前台,否则不再接收静音推送通知.

在这两种情况下,我都会得到非静音推送通知.

如果我再次插入USB电缆,那么无论应用程序是前景还是后台,我都会收到预期的行为并收到静音推送通知.

我正在使用UILocalNotification,所以我知道收到了什么.

连接设备一切正常的事实表明我的静音推送通知配置正确,并且应用程序具有在plist中设置的正确背景模式等.

在iPhone 5s,6和iPad 2上都可以重复此行为,所有这些都运行IOS 8或8.1.

还有其他人经历过这个吗?它应该很容易重现.为什么将设备插入充电器的简单行为会改变接收静音推送通知的能力?

iphone background apple-push-notifications ios silent-notification

56
推荐指数
4
解决办法
3万
查看次数

iOS中的远程通知和静默通知有什么区别?

当我阅读Apple Docs时,他们提到了3种类型的通知:本地,远程和静默.

可以从应用程序本地发送的名称推断本地通知.

但是,其他两种类型的区别是什么?

push-notification apple-push-notifications ios remote-notifications silent-notification

41
推荐指数
2
解决办法
2万
查看次数

如果用户已禁用推送应用程序,是否可以进行静默远程通知?

在我的设置标签栏中:

  1. 我有一个特定于功能的开关,可以根据API响应关闭或打开.
  2. 从网站只有管理员才有权打开/关闭.
  3. 我可以在设置点击时每次进行/用户API调用以检查用户的当前设置,但是有一些缺点,例如,如果用户已经在设置,那么它将不会更新UI并且每次在设置上调用api都不会发出声音完美的解决方案.

我认为更好的解决方案是发送静默推送通知,我可以使用它来进行API调用,以便在需要时更新设置UI.

但如果用户已禁用推送通知,我仍会收到静音推送吗?处理此类情况的推荐方法是什么?

notifications objective-c push-notification ios silent-notification

38
推荐指数
3
解决办法
1万
查看次数

当应用程序处于后台时,未在 iOS 13.3 中调用 didReceiveRemoteNotification

我在敲我的头。我正在实施推送通知。一切正常(收到推送,更新徽章),但在 iOS 13.3 下,应用程序在后台时不会调用方法 application(_:didReceiveRemoteNotification:fetchCompletionHandler:) 。如果应用程序在前台或使用 iOS 12 设备,则调用该方法。我通过以下方式注册推送通知:

[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
    if (granted) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [[UIApplication sharedApplication] registerForRemoteNotifications];
        });
    }
}];
Run Code Online (Sandbox Code Playgroud)

有效载荷设置为以下

{"aps": {
    "badge": 10,
    "alert": "test",
    "content-available": 1
}}
Run Code Online (Sandbox Code Playgroud)

我尝试在所有变体中添加“远程通知”和“后台处理”作为应用程序功能(仅“远程通知”/“后台处理”,没有任何这些功能,启用两者)而没有任何更改。我为 UNUserNotificationCenter 设置了委托,但同样没有成功。我相应地设置了标题:

curl -v \
 -H 'apns-priority: 4' \
 -H 'apns-topic: xx.xxxxx.xxxx' \
 -H 'apns-push-type: alert' \
 -H 'Content-Type: application/json; charset=utf-8' \
 -d '{"aps": {"badge": 10,"alert": "test", "content-available":1}}' \
 --http2 \
 --cert pushcert.pem \
 https://api.sandbox.push.apple.com/3/device/1234567890 …
Run Code Online (Sandbox Code Playgroud)

objective-c apple-push-notifications ios silent-notification ios13

19
推荐指数
2
解决办法
9847
查看次数

是否可以在iOS上发送SILENT LOCAL通知

我的应用程序从服务器静默远程通知的挂起模式唤醒,正如我想要的那样.此服务器发送带有" content-available:1" 的推送通知,该通知执行该作业.

现在我想在没有服务器帮助的情况下这样做,所以我想在将来的某个时间发送静音本地通知(来自应用程序)(比如15分钟后),但找不到设置的方法内容可供选择:1" .所以我最终得到的本地通知并没有唤醒我的应用程序,因为我可以使用远程通知.

我搜索了一些信息,我所能找到的只是交互式通知的示例,以及如何设置标题,正文,警报和触发器(基于位置,日期等).但没有关于如何设置内容可用属性.

那么,是否可以为本地通知设置内容?

apple-push-notifications ios localnotification silent-notification

11
推荐指数
1
解决办法
5939
查看次数

推送通知Json中"内容可用"的目的?

目的是发送仅带徽章值的推送通知,而不发送任何其他内容(无横幅).

我集成了解析sdk以测试推送通知并发送此推送通知

{
"alert" :"",
"badge" :"787",
"Content-available" : "1",
"sound" : ""
}
Run Code Online (Sandbox Code Playgroud)

所以推送通知在应用程序处于后台,前台和应用程序被杀时发送.用徽章阀78在推送通知到达时擦除一些数据的目的成功.我发送了与"Content-available"相同的通知:删除了"1",但是之前一切正常.

我对"内容可用"的理解是,将其值设置为1将允许推送通知而没有警报值.

所以我很困惑,或者我想知道这个推送通知JSon中"Content-available"的含义.

谢谢

push-notification apple-push-notifications ios silent-notification

11
推荐指数
2
解决办法
1万
查看次数

如何使用app center push服务发送静默通知

我正在尝试使用此API发送无声通知(我的意思是托盘中不会显示通知) :

但是当我没有设置正文密钥时,我得到了这个错误:

 {
  "error": {
    "code": 400,
    "message": "body parameter is invalid or empty.: 'Body' cannot be null."
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果有一种方法在Android中发送静默通知(在ios我知道有内容可用标志)

Tnx提前!

android push-notification silent-notification visual-studio-app-center

6
推荐指数
1
解决办法
965
查看次数

我应该在收到有效负载后更新我的应用吗 或者我应该通过允许它自己下载来更新它?

当您的iPhone收到WhatsApp/Telegram推送通知时,例如

wife:
"buy pizza"
Run Code Online (Sandbox Code Playgroud)

问题1:应用程序是否必须自行下载/接收.这是手机上弹出的横幅必须为自己下载+我的Whatsapp/Telegram必须再次自行下载?

我的朋友回答说:

推送通知可以将消息作为有效负载.您的应用可以提取并动态插入到对话中而无需另外请求 - 我之前已经这样做了.让它感觉更加快捷.缺点是您不能保证推送将以正确的顺序(或根本没有)到达.

但我不相信,从语义的角度来看,推送通知不应该真正更新你的应用程序.如果他们这样做将是一种滥用......他们应该只通知您的应用程序更新,然后允许您通过下载任何已提供的新内容来自行更新.

因此,要查看顶级公司及其应用是否正在应用我的朋友建议我使用3个应用(Gmail,WhatsApp,Telegram)进行了一些实验:

我关闭了Wifi,但保留了蜂窝数据,然后我也禁用了应用程序使用Cellular数据的访问权限.

在此输入图像描述

然后我有人给我发了一条消息/电子邮件:这是我的结果:

电报::我收到警报(发件人+第一行).但是一旦我打开应用程序(或点击通知),它就没有我的新消息或任何东西.

但是,如果允许Telegram访问互联网...它会在后台下载消息...即如果我遵循以下顺序:我是wifi或没有互联网限制的蜂窝数据 - >收到通知 - >转互联网完全关闭,但然后转到应用程序:我会在那里看到完整的消息/正文.

Gmail:我收到提醒(有预览主题/发件人/正文)但是一旦我打开应用程序,它就没有我的新消息或任何东西.

如果Gmail应用程序被允许访问互联网......那么与Telegram相反:只有在打开应用程序本身之前,它才会下载/更新Gmail中的电子邮件.我猜Gmail没有content-available设置,1但Telegram设置为1

WhatsApp:我什么都没得到.

没有互动发生在接到通知......这只有当应用程序被下载情况本身.

我的结论是:

没有互动发生在接到通知......这只有当应用程序被下载情况本身独立于有效载荷的到来.

Gmail和Telegram正在进行冗余下载,基本上不够智能,我的朋友建议或者没有收到电子邮件/消息的风险太大,最好安全一点:thinking_face:

问题2:这个结论是否正确?

apple-push-notifications ios swift remote-notifications silent-notification

5
推荐指数
1
解决办法
322
查看次数

APNS 内容可用推送在 iOS 15 中不起作用

使用 Xcode 13.0、iOS 15 SDK 构建应用程序时,iOS 15 设备中未收到 APNS 内容可用推送。

推送有效负载数据,内容可用:1 不工作

{"aps":{"content-available":1},"update":"2|1"}
Run Code Online (Sandbox Code Playgroud)

但通知消息推送正常

{"aps":{"alert":"welcome"}}
Run Code Online (Sandbox Code Playgroud)

iOS 15静默推送消息的标头字段中是否有任何有效负载或配置?

payload apple-push-notifications silentpush silent-notification ios15

5
推荐指数
1
解决办法
3296
查看次数

iOS 11中是否已弃用无声远程推送通知?

目前,我可以使用应用程序委托的didReceiveRemoteNotification方法接收静默推送。

该方法已被弃用,根据此方法,我们应该切换到UNUserNotificationCenterwillPresent方法,但我似乎无法使其在无声推送中起作用。既然没有任何提示可以在无声推送中显示,那么至少可以这样说是不合常理的。

已经阅读了有关推送Xcode 8的注册不带通知的CKSub以及其他很多东西,但是一切都回到了不推荐的方法。

我们是否应该使用其他方法进行静默推送(这不是面向用户的通知,但在这种情况下,它CKQuerySubscription是触发后台活动的报告)?还是应该willPresent为无声推送工作(在这种情况下,我错过了配置的一部分...)?

提前致谢。

apple-push-notifications swift cksubscription unusernotificationcenter silent-notification

4
推荐指数
1
解决办法
640
查看次数

设备重启后未发送 iOS 静默推送通知

在测试向我的应用程序发送静默通知(一个在有效负载中具有“内容可用”:1 的通知)时,我注意到,在设备重新启动后,不会发送通知。如果应用程序在后台或前台运行,则发送相同的有效负载有效,但在设备重新启动后,我没有收到didReceiveRemoteNotification:回调AppDelegate

这在 iOS 13 和 iOS 12 上都会发生

apple-push-notifications ios silent-notification ios13

3
推荐指数
1
解决办法
1226
查看次数