TEL:400-8793-956
当前位置:程序、服务器

如果我的应用程序处于非活动状态,则Ajax调用会开始失败;否则它们在WiFi上就可以正常工作

提问者: 近期获赞: 浏览人数: 发布时间:2020-12-30 13:14:20

 问:在我基于Phonegap的混合应用程序中:如果我的应用程序 在几分钟内处于非活动状态,则Ajax调用将开始失败 。我的连接是WiFi,发生的情况是ajax呼叫失败,状态为0;但 navigator.connection.type 仍显示WiFi。这仅在iOS上而不在android上发生。

 
然后我注意到用户是否一直在应用程序周围单击(从而启动ajax呼叫,实际上实际上状态为0失败),他能够在2分钟后使应用程序回到正常状态(即突然ajax呼叫开始工作并发布该应用程序运行正常)。看到此行为,我创建了一个每5秒执行一次失败的循环,直到最终该应用程序能够连接,即2分钟后成功执行ajax调用。(这是不可行的,因为没有用户会等待2分钟才能使应用重新连接)
 
我尝试的其他选项是将UIRequiresPersistentWiFi iOS属性列表文件中的密钥设置 为YES(但这不能解决问题)
 
我还可以看到具有完整信号强度的WiFi图标,Facebook等其他应用程序也可以使用WiFi正常工作。
 
在过去的几个小时中,我真的很伤脑筋,我不知道在哪里以及如何解决这个问题。任何帮助深表感谢。谢谢!
 
 
答:作为iOS开发人员,我建议您在应用程序处于后台状态时运行所有与ajax相关的调用。如果应用程序处于非活动状态或被iOS终止,则无法运行Ajax调用。对于支持后台执行的应用程序,用户退出应用程序时通常不会调用“ applicationWillTerminate”方法,因为在这种情况下,应用程序只是移至后台。但是,在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下,可以调用此方法。
 
上一篇: 如何覆盖创建方法
下一篇: 可序列化的界面