2017-08-05 107 views
0

让我们假设一个场景,其中有一个聊天应用程序,我打开它,然后按下home键。现在,应用程序正在后台运行,但未杀死。我是否可以收到通知徽章或即将发布的消息弹出窗口? 对于例如:如果有新消息,并且我的应用程序产生了一些声音或徽章(如果它没有被杀死并在后台运行)。iOS应用程序通知在后台打开(未杀)

我在问这个问题,因为我有疑问。我在网上发现,该应用程序可以在后台运行,仅用于Apple预定义的几个枚举任务列表,而不是像android那样的所有情况。

请告诉我在这种情况下是否可以收到有关新消息的通知。 (没有服务器,推送通知使用)。更清楚我想要的是一旦应用程序在上述场景中就有本地通知。请告诉我,如果可能的话。

在此先感谢。

+0

参见[这个问题](https://stackoverflow.com/questions/37933387/firebase-cloud-messaging-doesnt-create - 推送通知但是获取信息/ 38445657#38445657)也[此问题](https://stackoverflow.com/questions/39914557/push-notification-not-showing-in-ios-10)。那里有很多信息可以给你指导。有关设置的实际说明位于[接收iOS应用程序指南中的消息](https://firebase.google.com/docs/cloud-messaging/ios/receive) – Jay

回答

0

您可以使用VoIP推送通知来实现此目的。您可以在后台运行一些代码来处理后台中的通知,然后在您的应用决定播放本地通知时进行处理。

但是,截至6月份,苹果不再允许开发者以这种方式使用API​​,除了WhatsApp因为我猜想$$。

你需要使用PushKit

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType)

func voipRegistration() { 
     let voipRegistry: PKPushRegistry = PKPushRegistry(queue: DispatchQueue.main) 
     voipRegistry.delegate = self 
     voipRegistry.desiredPushTypes = [PKPushType.voIP] 
    } 
+0

Antwa,感谢您的回复。你的意思是我想要做的上面是不可能没有推送通知,即我不能让我的应用程序显示任何消息抵达后,我按下主页按钮和应用程序去后台显示任何通知。对? –

+0

@JacobKaif据我所知,你不能不使用这个API或只是普通的旧推送通知。 –

+0

@JacobKaif它们基本上都是相同的,除非你需要稍微修改你的apn服务,生成一个voip推送证书并添加权利。我曾与一位苹果代表谈过此事,他们基本上不希望你这样使用它。除了whatsapp之外,就像我所想的那样。他们不关心他们如何使用它。 –

相关问题