2012-07-20 3 views
0

UIWebView는 내용을 성공적으로로드했지만 표시하지 않습니다. UIWebView 그냥 흰색 화면입니다. 그러나이 UIWebView를 클릭하면 클릭이 처리됩니다. 예를 들어, 링크가 있어야하는 위치 (실제로는 공백)를 클릭하면 처리 된 클릭 및 다음 페이지가로드되고 확인으로 표시됩니다.UIWebView가로드 중이지만 내용을 표시하지 않습니다.

버그가 불안정합니다. 로컬 HTML 파일 (우리 홈페이지, 로컬로 생성 됨) 만 가지고있어 웹 컨텐츠가 OK입니다. 20 %의 경우에 발생합니다. 그러나 동시에, 그것은 매우 끈적입니다. 일단 흰색 화면이 나타나면이 페이지를 여러 번 다시로드하고 흰색 화면을 볼 수 있습니다 (그러나 보이지 않는 링크를 클릭하면 다른 페이지가 성공적으로 표시됩니다). 때때로 어떤 이유도없이 때때로 나타납니다. 이 빈 화면을 위아래로 "스크롤"하여 가끔로드 할 수 있습니다. 이 로컬 HTML에는 많은 것들, 삽입 된 이미지, 자바 스크립트 등이 있으며 자바 스크립트 문제 일 수는 있지만 어떻게 보이지는 않지만 클릭 할 수있는 방법을 설명 할 수는 없습니다.

iPod 실제 장치 및 iPhone 시뮬레이터 4.3에서는 발생하지만 iPad 또는 iPad 시뮬레이터에서는 재생할 수 없습니다.

나는 이것을 해결하려고 하루 종일 보냈습니다. 어떤 아이디어?

답변

0

나는 이것을 풀었다!

UIWebView의 이러한 이상한 동작은 자바 스크립트 코드로 인해 발생했습니다. 자바 스크립트는 (간체) 같았다 :이 코드의

<script> 

    function onLoad() { 
     location.href='xxx://pageLoaded'; 
    } 

    </script> 

<body onload='onLoad();'> 

아이디어는 페이지가로드되었다는 사실에 대해 응용 프로그램을 알리는 것이 었습니다. 응용 프로그램에서 xxx : // pageLoaded 요청을 catch하고 취소합니다 (shouldStartLoadWithRequest). 요청 취소 때문에, 나는 여기에 어떤 문제도 기대하지 않았다. 특히, 나는 그 내용이 보이지 않게 될 것이라고 기대하지는 않았지만 아직도 성서적이다. 나는 onload 화재와 location.href 변경 사이에 타이머 (setTimeout)를 추가했습니다. 그것은 문제를 해결합니다.

참고 : webViewDidFinishLoad에 대한 정보는 UIWebView입니다. 이것은 문제와 해결책을 설명하기 위해 매우 단순화 된 예입니다. 실제 자바 스크립트는보다 정교하며 간단한 사용으로 도달 할 수 없습니다. webViewDidFinishLoad.