ios - 在 XMPP 框架中在后台发送本地通知

标签 ios background notifications xmpp

我正在使用 XMPP 框架在 IOS 中做一个聊天应用程序。 以前它不能在后台工作,但现在我需要在用户收到消息时发送本地通知。 我的应用程序不为此功能使用推送通知,因为在同一应用程序中,Android 设备在用户收到消息时发送本地通知。

我在互联网上尝试了一些文档,发现应用程序不支持后台运行,我需要在后台模式下检查 VOIP,但文档还说苹果有机会拒绝该应用程序。

这是我的代码:

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

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

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

不在后台调用 我还启用了 enableBackgroundingOnSocket。 但我需要知道为什么它不能在后台工作。 如果 Apple 因 VOIP 拒绝此应用程序,是否有替代解决方案,无需推送通知。

任何指导或建议都会有所帮助。

最佳答案

当您的应用进入后台时,您(客户端)关闭与 xmpp 服务器的连接。当您的应用程序返回前台时,您会重新打开连接。如果您的服务器需要向您的客户端发送消息,它必须使用推送通知。当客户端收到通知 CAN(这取决于用户操作)可以回到前台。 仅适用于 VoIP 应用 您需要在 Info.plist 中指定 voip UIBackgroundMode。 信息.plist 文件: 1 - 将“应用程序不在后台运行”设置为否。 2 - 将“App provides Voice over IP services”添加到“Required” 背景模式” 3 - xmppStream.enableBackgroundingOnSocket = 是

关于ios - 在 XMPP 框架中在后台发送本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32154984/

相关文章:

android - Cordova Insomnia 插件不工作

ios - AFNetworking 3.0 后台上传不工作

wpf - 对窗口背景图像的模糊效果

Javascript - 在 Android 设备上单击服务工作人员通知后打开浏览器选项卡

ios - Google Analytics 无法在 iPhone 上正确跟踪 HTML5 移动应用程序中的事件

ios - 核心数据、Xcode 4.5 和在数据模型中创建获取的请求

java - Android 通知未启动 Activity

android - 在android中没有NotificationListenerService的情况下读取通知

c# - asp.net中的后台进程

css - 用图像替换按钮文本?