相关疑难解决方法(0)

在iOS 7推送通知中正确使用"内容可用"

我只是在寻找有关iOS 7思维过程和推送通知负载中"内容可用"键值的反馈.

场景:我强制关闭应用程序.根据Apple的说法,因为我已经这样做了,我将不再收到任何包含其有效负载中键值"content-available"的通知.这意味着警报根本没有显示,基本上没有任何反应.没有声音,没有警报信息,没有徽章增量.

理论:由于上述情况,您似乎想要发送两个推送通知.

  1. 只有您的"警报","徽章"和"声音"值的推送通知,以便用户看到与更新相关的通知,而不管应用程序状态如何.

  2. 仅包含"内容可用"键值的推送通知.如果应用程序处于可以接受此状态的状态,则会执行后台任务.在它不能接受的情况下,用户仍然从第一推送通知接收视觉/听觉通知.

问题:这是Apple打算如何执行静音/背景通知吗?我真的没有看到你可以实现的另一种方式.

apple-push-notifications ios ios7

9
推荐指数
1
解决办法
8169
查看次数

如果我手动杀死app,iOS无声推送通知无效

我已实现静默推送通知.如果我手动杀死app,它无法正常工作.获得静默推送通知后,我调用了一个将数据发送到服务器的函数.

这是我的静音推送通知代码

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


NSLog(@"didReceiveRemoteNotification fetchCompletionHandler...........");
[MyviewController SendDataFunction];

handler(UIBackgroundFetchResultNewData);
}
Run Code Online (Sandbox Code Playgroud)

请指导我.

更新: - 如果用户在应用切换器中手动杀死应用,则无法通过静默通知或后台提取启动应用.要获得通知,用户必须再次启动该应用.如果有人需要激活应用程序,那么应该为该应用程序启用PushKit + VOIP,如whatsapp,请参阅以下链接 https://zeropush.com/guide/guide-to-pushkit-and-voip

apple-push-notifications ios

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

iOS 8中的远程通知(非用户通知)

在iOS 8中,即使没有用户的明确许可,也可以将远程通知发送到用户的设备.所以我正在尝试使用此和远程通知后台模式通过发送远程推送通知来唤醒应用程序.

我通过注册远程通知而不是用户通知来确认这是有效的.(-registerUserNotificationSettings)

[application registerForRemoteNotification];
Run Code Online (Sandbox Code Playgroud)

我已经实现了以下委托方法.

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

但是,它似乎只有在应用程序位于前台时才有效.

根据文件,

使用此方法处理应用程序的传入远程通知.与应用程序:didReceiveRemoteNotification:方法不同,只有当您的应用程序在前台运行时才会调用该方法,系统会在您的应用程序在前台或后台运行时调用此方法.

即使我启用了远程通知后台模式("必需的后台模式","应用程序从项目设置的信息中下载内容以响应推送通知"),它也不会唤醒应用程序.

我在这里错过了什么吗?

为了清楚起见,我不希望用户看到推送通知权限警报,因为我不需要在收到推送通知时显示任何内容.我只是想唤醒应用程序并进行一些处理.

这是我正在使用的有效载荷.

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

从控制台,我看到了这一点.

apsd[82] <Warning>: Silent Push: Deny app has no feature.
Run Code Online (Sandbox Code Playgroud)

notifications push-notification ios8

7
推荐指数
0
解决办法
1855
查看次数

iOS - 当应用程序强制退出用户时处理静默推送通知

我目前在iOS中遇到推送通知问题.

我的应用程序收到包含标识符的静默推送通知 然后,此标识符用于从创建本地通知的远程服务器获取数据.

据我所知,如果用户有强制退出的应用程序,然后无声推送通知没有得到传递到(通过双击home键和刷卡关闭应用IE)didReceiveRemoteNotification的方法的AppDelegate类[1 ] [2],从而阻止应用程序进行任何类型的处理.

我已经对处理上述情况做了大量研究.然而,无法找到明确的答案,并希望有人可以帮助我或指出我正确的方向.

TLDR:当用户强制退出我的应用程序时,我该怎么办,但是我仍然需要处理静默通知?

更多信息:
我的应用程序只需要支持iOS8 +.

[1] https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW1

通知有效负载
如果在通知到达时目标应用程序未运行,则会播放或显示警报消息,声音或徽章值.如果应用程序正在运行,系统会将通知作为NSDictionary对象传递给应用程序委托.

[2] /sf/answers/1344174121/

notifications apple-push-notifications ios

7
推荐指数
1
解决办法
4426
查看次数

如果应用程序已终止,将调用performFetchWithCompletionHandler

很难找到明确的答案; 在Apple文档中找不到它,在搜索过去的问题后找不到肯定的是/否.

问题很简单 - 如果应用程序请求在N次之后执行后台提取,则用户终止应用程序.操作系统是否仍会将应用程序启动到后台以执行后台获取?

ios background-fetch

7
推荐指数
1
解决办法
2117
查看次数

Firebase静默通知无法启动已关闭的iOS应用

FCM无声通知可以启动一个封闭的iOS应用吗?

Request Type: POST

Request URL: https://fcm.googleapis.com/fcm/send

Request Headers:

Authorization -> key=MY_KEY

Content-Type -> application/json

Request Body:

{
  "to": "/topics/my_topic",
  "content_available": true,
  "data": {
    "contentAvailable": 1
  },
  "priority": 10
}
Run Code Online (Sandbox Code Playgroud)

但是,如果用户关闭它,此有效负载不会启动我的iOS应用程序.

如何在收到无声通知时让iOS启动我的应用程序?

push-notification apple-push-notifications ios firebase firebase-cloud-messaging

7
推荐指数
1
解决办法
1655
查看次数

当应用关闭并强行退出时,Dropbox Carousel如何同步?

我一直试图找到有关这方面的信息,但似乎找不到任何东西.我有一些想要实现的想法,并希望即使应用程序不在应用程序切换器中,我也可以进行后台同步.这个Stack Qverflow问题似乎表明,如果用户强制退出,iOS将不会让应用程序唤醒并执行任务.我放弃了这个想法,直到现在.

我最近安装了Dropbox Carousel,并一直用它来自动上传照片.我希望我每隔一段时间就必须打开应用程序才能将照片上传到Dropbox.然而,当它完全关闭(强制退出)时,当我在我的电脑时,我注意到文件被添加到Dropbox.

不知何故,Carousel正在后台上传照片,即使应用程序在应用程序切换器中无处可用.Dropbox如何做到这一点?我错过了什么吗?

我间歇性地注意到这种行为,它不像照片立即上传,但是在一定的时间间隔上传批次而不打开应用程序而且没有我的任何动作(手机只是连接到WiFi关闭屏幕).

background sync objective-c ios

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

推送通知代码执行(强制退出应用程序)

我想知道像Whatsapp这样的应用程序如何能够向邮件的发件人发送送货回执(双绿色支票).

我已经看到,即使您强制退出Whatsapp(使用应用程序任务切换器并轻扫应用程序),发件人仍然会在手机上收到推送通知时获得送达回执(双绿色检查).显然,他们能够在接收推送通知时执行代码(向后端发出请求,通知交付).

由于iOS7可以发送带有"content-available"的推送通知有效负载:1,这使得通知的接收者能够执行用户代码,因此,首先我认为他们正在使用此功能.但是,如果用户强制退出应用程序,则在接收通知时不会执行用户代码.因此,我无法模仿Whatsapp行为.

我启用了功能>后台模式并检查了远程通知.

我正在用这种方法处理通知:

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

我正在发送带有此负载的通知:

{
    "aps":{
            "alert":"Hello world",
            "sound":"MySound.wav",
            "content-available":1
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经检查过:

我也读过有关PushKit的内容(虽然我没有尝试过),这可能对我有帮助,但我的理解是应用程序需要成为VOIP应用程序.很明显,我不想要求我的应用程序上的VOIP只在接收推送通知时执行代码.

谢谢.

push-notification apple-push-notifications ios

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

远程关闭iOS推送通知

适用于iOS的Gmail应用可以在应用未运行时接收推送通知(与大多数电子邮件应用一样).

但是,即使应用未运行,用户收件箱的未读数量变为零时,它也能够清除设备中的所有Gmail推送通知.

以下是一个示例序列:1.在您的Gmail帐户中接收新电子邮件.2. iOS设备显示新消息的通知.3.转到Gmail网站并打开邮件(将邮件标记为"已读").4. iOS设备上的通知被驳回.

注意:[[UIApplication sharedApplication] scheduledLocalNotifications]仅提供本地通知,即在iOS应用程序本身内创建的通知.

就Apple的APNS文档所描述的,没有办法远程启动应用程序到后台,并且无法解除远程通知.

那么,Gmail iOS应用如何实现这一目标呢?

iphone objective-c push-notification apple-push-notifications

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

关闭应用程序时的iOS通知

我有一个ios应用程序,从服务器发送通知时我将远程通知发送到哪里,我正在设置内容-available = 1声音=“” 在IOS设备上使用时

applicaiton(didReceiveRemoteNotification:fetchCompletionHandler :)

我看到应用程序在后台运行时到达此方法,但是在关闭应用程序时未调用此方法,但是在关闭应用程序时未调用该方法

applicaiton(didReceiveRemoteNotification:fetchCompletionHandler :)

我在此方法中的处理程序是

        let userInfoDic = userInfo as NSDictionary as? [String: Any]
        let cato = userInfoDic?["cato"] as? String
if cato == "message" {
            let state: UIApplicationState = UIApplication.shared.applicationState
            if state == .active{
                print("Application is Active Socket IO will Handle This")
            }else{
                let apnMessage = userInfoDic?["apnMessage"] as? [String: Any]
                if (apnMessage == nil){
                    print("Error Fetching Message")
                }else{
                let count = UserDefaults.standard.integer(forKey:"TotalUnredMessage")

                    DispatchQueue.main.async {
                        UIApplication.shared.applicationIconBadgeNumber = count + 1
                    }
                    UserDefaults.standard.set(count, forKey: …
Run Code Online (Sandbox Code Playgroud)

apn push-notification ios remote-notifications

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

为什么我的 iOS 13 应用程序在被用户终止时通过静默推送在后台唤醒

我不知道这是苹果的错误还是功能。在文档中

如果用户强制退出,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会尝试再次自动启动您的应用程序。

至于其他StackOverflow的问题是有这个 这个显示相同。

在我的情况下,系统在后台重新启动应用程序并运行用于存储在数据库中的代码。怎么可能呢?它调用方法 didFinishLaunchingWithOptions: 然后didReceiveRemoteNotification:在后台(未显示在应用程序切换器中)。但是在早期版本中,它不会唤醒在 iOS 12.2 中测试的后台应用程序

我正在发送有效载荷以进行通知

  "aps": {
    "alert": {
      "body": "",
      "title": ""
    },
    "mutable-content": 0,
    "category": "",
    "badge": "",
    "sound": "",
    "content-available": 1
  },
  "data": {
   //other fields
  }
 }


Run Code Online (Sandbox Code Playgroud)

push push-notification silentpush ios13

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

在启动时运行后台任务

我正在编写一个iOS应用程序,它使用Dropbox Datastore API在多个设备之间同步数据.

在Android上,我能够告诉服务在启动时启动,这使它能够同步设备关闭时可能发生的任何更改.

我无法找到一种明确的方式让我的应用在iOS上做同样的事情.

那么,有没有人有任何建议:

  • 在iOS上高效可靠地运行简单的后台服务.
  • 让服务在启动时启动

必须这样 - Facebook和Gmail等应用程序会在设备完成启动后立即开始同步.

background-process ios

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