yeh*_*nan 43 iphone background ios
一个iPhone应用程序,通过TCP连接到远程服务器.使用场景是:
假设如果应用程序30分钟内没有向服务器发送数据,服务器将关闭连接.即使用户什么也不做,我想让连接保持120分钟.
案例1:如果应用程序在前台,我可以使用计时器向服务器发送一些无用数据.没问题.
案例2:如果用户按下主页并且应用程序转到后台,我该怎么办?我不想表现出警告或某些事情来打断用户(他不在或正在玩游戏).我只想让连接保持更长时间,当用户回到应用程序时,他发现连接仍然存在并且对此感到满意.
我已阅读有关iphone API的后台执行,多任务处理和本地通知的文档.我不确定能否达到案例2.
仅使用合法的API,不进行越狱.
Nic*_*ver 15
请参阅 Apple的iOS应用程序编程指南中的实现VoIP应用程序.这不是经过测试的解决方案,但我认为它可以用来实现您的要求.
实施VoIP应用程序
互联网协议语音(VoIP)应用程序允许用户使用互联网连接而不是设备的蜂窝服务拨打电话.这样的应用程序需要维持与其关联服务的持久网络连接,以便它可以接收传入呼叫和其他相关数据.系统不是让VoIP应用程序始终保持唤醒状态,而是允许它们被暂停,并提供监视其套接字的工具. 当检测到传入流量时,系统唤醒VoIP应用程序并将其套接字的控制权返回给它.
我不确定您是否正在开发VoIP应用程序,但您将能够访问套接字并对传入的数据包做出反应.引用后的文本指的是[setKeepAliveTimeout:handler:][2]允许您设置一个代码块,允许您保持(您的VoIP)连接.但最短调度时间是10分钟.
实现VoIP应用程序是关于安装Keep-Alive Handler的一个段落.我很好奇这是否会有所帮助.如果这解决了您的问题,请给我们一个说明.
小智 5
1.用这样的VOIP属性创建你的套接字
[inputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType] ;
[outputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType] ;
Run Code Online (Sandbox Code Playgroud)
2.在app.plist中添加所需的后台模式作为"App提供IP语音服务"
如果您的应用程序处于后台模式,则voip socket将无法关闭.使用此套接字和uilocal通知,您可以获得.
"如果您的应用程序不是原始的voip应用程序商店将拒绝"
| 归档时间: |
|
| 查看次数: |
38596 次 |
| 最近记录: |