2013-05-20 4 views
5

일부 콘텐츠를로드하는 javascript를로드하는 WebView가 있습니다. 해당 내용은 iframe이있는 html입니다.WebView iframe에서 클릭 감지

iframe 내의 아무 클릭도 WebViewClient#shouldOverrideUrlLoading(WebView view, String url);에 대한 호출을 시작하지 않은 것 같습니다. webview가 WebViewClientWebChromeClient을 모두 설정했습니다.

업무용은 주위에 내가의 볼 수있는 웹보기에 getSettings().setSupportMultipleWindows(true)과를 호출하는 것입니다 다음 onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg)이 전화가 iframe 내에 만들어 iframe이 데이터를 얻기 위해 일부 삽입 된 자바 스크립트를 사용했다 가정 내에서. 그러나 그것은 저에게보기 흉한 것처럼 보입니다.

질문 : 웹 뷰 내에로드 된 iframe 내의 클릭을 어떻게 감지합니까?

감사합니다.

답변

4

나는 무엇이 문제인지 발견했다. 나는 Same Origin Policy을 어겼다. 웹 개발을하는 동료가 올바른 방향으로 나를 지적했습니다.

전체 문서 (iFrame 포함)는 iframe이 포함 된 것과 다른 원본 (구성표, 호스트 이름 및 포트 번호 조합)을 갖습니다. 이러한 프레임 (문서 및 내부 iframe 포함)이 다른 출처를 갖고 있으면 통신 할 수 없습니다. 그래서 shouldOverrideUrlLoading으로 전화를받지 못합니다.

편집 "액세스 제어가--허용 원산지 : iframe이 들어있는 응답에 다음과 같은 헤더를 추가 : 그것은 거기에 보안 정책 위에 육교 수있는 방법이지만, 그 허용 보안 위험과 함께 제공 같다 : * "

+0

@ gunnar 지금은 비디오를 재생할 수 있습니다. 나는 많은 것을 찾았지만 제 시나리오에는 적합하지 않은 대답을 진지하게 필요합니다. –

+0

@NitinMisra : 당신이 직면 한 문제는 무엇입니까? StackOverflow에 새로운 질문을 작성하고 URL에 새로운 설명을 보냅니다. 이 방법으로 나는 당신의 질문을 이해할 수 있고 또한 다른 누군가가 대답을 알 수있는 더 큰 기회를 가질 수 있습니다. – gunar