我正在使用XMPP Framework在IOS中进行聊天应用程序。 以前它不在后台工作,但现在我需要在用户收到消息时发送本地通知。 我的应用不会使用此功能的推送通知,因为在Android设备中的同一个应用中,当用户收到消息时会发送本地通知。
我在互联网上尝试了一些文档,发现应用程序不支持后台,我需要在后台模式下检查VOIP,但是文档也说有机会拒绝苹果应用程序。
这是我的代码:
$(".yellow").on("click", function () {
$(this).toggleClass(".yellow");});
但是- (void)applicationDidEnterBackground:(UIApplication *)application{
XMPPPresence * presence =[XMPPPresence presence];
[[self xmppStream] sendElement:presence];
NSLog(@"*********%@",presence.type);}
不是在后台调用 我还启用了enableBackgroundingOnSocket。 但我需要知道它为什么不在后台工作。 如果Apple因为VOIP而拒绝此应用程序,那么在没有推送通知的情况下可以使用其他解决方案。
任何指导或建议都会有所帮助。
答案 0 :(得分:2)
当你的应用程序进入后台时,你(客户端)关闭与xmpp服务器的连接。当您的应用程序返回到前台时,您重新打开连接。如果您的服务器需要向您的客户端发送消息,则必须使用推送通知。当客户端收到通知CAN(它取决于用户操作)可以返回前台。 仅适用于VoIP应用 您需要在Info.plist中指定voip UIBackgroundMode。 info.plist文件: 1 - 设置"应用程序不在后台运行"没有。 2 - 添加"应用程序提供IP语音服务"到#34;必需 背景模式" 3 - xmppStream.enableBackgroundingOnSocket = YES