2015-08-22 79 views
1

我正在使用XMPP框架在iOS中進行聊天應用程序。 以前它不是在後臺工作,但現在我需要在用戶收到消息時發送本地通知。 我的應用程序不使用推送通知此功能,因爲在Android設備的相同應用程序發送本地通知時,用戶收到一條消息。在XMPP框架中的後臺發送本地通知

我在互聯網上試過了一些文檔,發現應用程序不會支持背景,我需要在背景模式下檢查VOIP,但文檔也表示有機會拒絕蘋果的應用程序。

這裏是我的代碼:

- (void)applicationDidEnterBackground:(UIApplication *)application{ 

XMPPPresence * presence =[XMPPPresence presence]; 
[[self xmppStream] sendElement:presence]; 
NSLog(@"*********%@",presence.type);} 

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message{}

不調用後臺 我也能enableBackgroundingOnSocket。 但我需要知道爲什麼它不在後臺工作。 ,如果蘋果拒絕這個應用程序,因爲VOIP有沒有推送通知的替代解決方案。

任何指導或建議都會有幫助。

回答

2

當您的應用程序進入後臺時,您(客戶端)關閉與xmpp服務器的連接。當你的應用程序回到前臺時,你重新打開連接。如果你的服務器需要發送消息給你的客戶端,它必須使用推送通知。當客戶端收到通知CAN(取決於用戶操作)可以回到前臺。 僅適用於VoIP應用 您需要在Info.plist中指定voip UIBackgroundMode。 info.plist文件: 1 - 將「應用程序不在後臺運行」設置爲NO。 2 - 添加「應用程序提供IP語音服務」至「需要的 背景模式」 3 - xmppStream.enableBackgroundingOnSocket =是