我正在构建一个Cordova应用程序,除了应用程序在某种情况下表现不佳这一事实之外我们几乎已经完成了。在这种情况下,会进行一系列异步ajax调用(在收到响应时大约需要15秒)。一旦页面已加载并显示,就应该进行这些调用。因此,它们是在登陆页面的onpageshow功能中制作的。问题是Cordova启动屏幕一直保持到呼叫完成为止。我现在唯一的理论是,在网络安静之前,科尔多瓦不会杀死闪屏。有谁知道我怎么能让Cordova忽略这些服务器调用?我试图在设备上调用cordova.exec(null, null, "SplashScreen", "hide", [])
,但这似乎没有让它消失。如果它是相关的,那么同样精确的服务器调用在已经在应用程序中调用并且用户不是更明智的时候异步运行就好了。这个问题似乎完全取决于app app。
提前感谢任何帮助或想法。
答案 0 :(得分:0)
如果您在获得“deviceready”事件之前进行AJAX调用 可能是从本机端延迟onPageFinished事件 Android系统。尝试将AJAX调用放入deviceready事件处理程序中。
答案 1 :(得分:0)
我们通过在启动异步请求的函数调用上放置1秒超时来解决此问题。我不会接受这个作为答案,因为它更像是解决方案而不是解决方案。从我在处理这个问题上花费的时间,我只能说,看起来Cordova在删除启动画面之前等待javascript闲置。由于异步调用是在javascript自然空闲之前进行的最后一次调用,因此在其上放置1秒超时似乎有效。奇怪的是,看到它是一个异步调用,javascript应该在调用之后直接闲置。也许科尔多瓦也在等待网络安静。这只是猜测,但希望它能为未来的读者提供一些如何解决问题的想法。