2012-08-29 2 views
1

저는 Cordova 앱을 제작하고 있습니다. 앱이 특정 조건에서 제대로 작동하지 않는다는 것을 제외하고는 거의 완료되었습니다. 이 조건에서는 일련의 비동기식 아약스 호출 (응답을받을 때까지 약 15 초)이 수행됩니다. 이러한 호출은 페이지가 이미로드되고 표시되면 수행되어야합니다. 따라서 방문 페이지의 onpageshow 기능에서 만들어집니다. 문제는 통화가 완료 될 때까지 Cordova 시작 화면이 유지된다는 것입니다. 내 유일한 이론은 바로 네트워크가 조용해질 때까지 코르도바가 스플래시 화면을 죽이지 않는다는 것입니다. 아무도 어떻게 Cordova가 이러한 서버 호출을 무시하도록 할 수 있는지 전혀 알지 못합니까? 나는 deviceready에 cordova.exec(null, null, "SplashScreen", "hide", [])를 부르려고했지만 그게 사라지지 않는 것 같았습니다. 관련성이있는 경우이 정확한 서버 호출은 앱에 이미있는 동안 호출 될 때 비동기식으로 실행되며 사용자는 더 현명하지 않습니다. 이 문제는 전적으로 앱로드로 인한 것 같습니다.비동기 요청 중에 코르도바 시작 화면이 멈 춥니 다

도움이나 아이디어를 미리 보내 주셔서 감사합니다.

답변

0

"deviceready"이벤트를 받기 전에 AJAX를 호출하는 경우 은 Android의 기본 측면에서 onPageFinished 이벤트를 지연시킬 수 있습니다. deviceready 이벤트 핸들러에 AJAX 호출을 시도하십시오.

0

우리는 비동기 요청을 시작하는 함수 호출에 1 초의 시간 제한을 설정하여이 문제를 해결했습니다. 솔루션보다는 해결 방법이 더 많으므로 이것을 대답으로 받아들이지 않을 것입니다. 이 문제를 해결하는 데 보낸 시간부터, Cordova는 스플래시 화면을 제거하기 전에 자바 스크립트가 유휴 상태가 될 때까지 기다리는 것으로 보입니다. 비동기 호출이 자바 스크립트가 자연스럽게 유휴 상태가되기 전에 만들어진 마지막 호출이기 때문에 1 초의 타임 아웃을 걸면 작동하는 것처럼 보였습니다. 이상한 점은 비동기 호출 인 자바 스크립트가 호출 직후에 유휴 상태 여야한다는 것입니다. 아마도 코르도바는 네트워크가 조용해질 때까지 기다릴 것입니다. 이것은 단지 추측이지만 미래의 독자들에게 문제 해결 방법에 대한 아이디어를 줄 수 있기를 바랍니다.

관련 문제