首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推送通知代码执行(强制退出应用程序)

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

Stack Overflow用户
提问于 2015-08-14 18:33:07
回答 1查看 2.9K关注 0票数 7

我想知道像Whatsapp这样的应用程序如何能够给信息发送者提供一张送货收据(双绿色支票)。

我已经看到,即使您强制-退出Whatsapp (使用应用程序任务开关和刷掉应用程序),发送者仍然得到送货收据(双绿色支票),就在推送通知在电话上收到。显然,他们能够在接收推送通知时执行代码(向后端发出请求,通知传递)。

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

我启用了Capabilities>Background模式并检查了远程通知。

我使用以下方法处理通知:

代码语言:javascript
复制
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

我用这个有效载荷发送通知:

代码语言:javascript
复制
{
    "aps":{
            "alert":"Hello world",
            "sound":"MySound.wav",
            "content-available":1
    }
}

我已经查过了:

我还读到了关于PushKit的文章(虽然我没有尝试过),但是我的理解是,这个应用需要是一个VOIP应用程序。显然,我不想要求我的应用程序上的VOIP只是在收到推送通知时执行代码。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-17 08:11:29

你刚才在描述中回答了你的问题。

  1. 如果是强制退出,则无法通过定期的推送通知唤醒应用程序。 请参见iOS应用程序设计指南: 在大多数情况下,系统不会在应用程序被用户强制退出后重新启动。一个例外是定位应用程序,在iOS 8和更高版本中,这些应用程序在被用户强制退出后会重新启动。但在其他情况下,用户必须显式启动应用程序或重新启动设备,然后应用程序才能由系统自动启动到后台。
  2. VoIP推送通知可以唤醒应用程序,即使它是强制退出。 请参见IP语音(VoIP)最佳实践: 当收到VoIP推送时,如果应用程序没有运行,它会自动重新启动。
  3. 两个蓝色标记以WhatsApp表示,接收者读取消息。如果收到两个蓝色标记,在收到推送通知后,这是WhatsApp中的设计错误或错误,因为您无法判断用户是否真的读取了通知。如果您得到两个灰色标记,这仅仅意味着消息被传递到设备。同样,如果您得到两个灰色标记,在收到推送通知并强制退出应用程序之后,WhatsApp要么(Mis)使用VoIP push进行此操作,要么假定推送已经交付或将交付。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32016616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档