2014-01-13 3 views
5

Phonegap 응용 프로그램을 개발 중이며 현재 외부 페이지를 표시하는 데 InAppBrowser을 사용하고 있습니다. 일부 외부 페이지에서 닫기 버튼을 배치하고 InAppBrowser를 닫고 싶습니다. InAppBrowser가 이러한 페이지를 표시하기 때문에 참조를 닫을 수 없으므로 ChildBrowser Plugin을 사용하도록 제안하지 마십시오.PhoneGap 응용 프로그램에서 InAppBrowser를 닫는 방법?

window.close(); //Not Worked for me 
or 
iabRef.close(); //Also not Worked for me because iabRef is not accessible on InAppBrowser. It is created on Parent Window 

일부 Android 기기 및 iOS 기기는 종료 버튼을 표시하여 완료 버튼을 표시합니다. iPad뿐만 아니라 완료 버튼도 표시됩니다. 하지만 안드로이드 태블릿의 경우 그것을 닫기위한 버튼이 없습니다.

UPDATE : -

여기

내 전체 코드는 다음과 같습니다 -이 블로그 게시물에 제공되는 솔루션있다

var iabRef = null; 
function iabLoadStart(event) { 
} 
function iabLoadStop(event) { 
} 
function iabClose(event) { 
    iabRef.removeEventListener('loadstart', iabLoadStart);  
    iabRef.removeEventListener('loadstop', iabLoadStop); 
    iabRef.removeEventListener('exit', iabClose); 
} 
function startInAppB() { 
    var myURL=encodeURI('http://www.domain.com/some_path/mypage.html'); 
    iabRef = window.open(myURL,'_blank', 'location=yes');  
    iabRef.addEventListener('loadstart', iabLoadStart); 
    iabRef.addEventListener('loadstop', iabLoadStop); 
    iabRef.addEventListener('exit', iabClose); 
} 
+0

PLS는 당신이 닫지 마십시오는 탐색 모음에서 뒤로 단추를 사용하는 이유는 u는 iInAppBrowser –

+0

을 연 코드의 당신의 나머지를 보여주는 게시물입니다? –

+0

InAppBrowser가 페이지를 표시 할 때 일부 링크가있어서 사용자가 다른 링크로 리디렉션 할 수 있습니다. 그 이유는 뒤로 버튼이 닫히기에 적합하지 않은 이유입니다. – Shashi

답변

5

이렇게하는 방법을 설명하는 SO 게시물이 있습니다.

기본적으로 window.open을 호출하여 inapp 브라우저에 대한 참조를 가져와 loadstop 이벤트에 연결해야합니다. loadstop 이벤트에서 url에 미리 정의 된 경로 (예 : 모바일/닫기 - 등)가 있는지 확인한 다음 close를 호출합니다. 여기

https://stackoverflow.com/a/15981972/54805

5

: cross window communication with cordova's inappbrowser

는 기본적으로, 당신은에서 executeScript()을 사용할 수 있습니다 부모 창을 InAppBrowser 인스턴스에 반복하여 (예 : 한 번 또는 두 번 씩) IAB의 값이 설정되었는지 확인합니다. IAB에서 '닫기'버튼을 누르면 해당 변수를 설정할 수 있습니다.

부모 창이 변수가 IAB에서 설정되었음을 발견하면 상위 창에서 IAB 참조를 close()으로 사용합니다.

관련 문제