2014-12-11 7 views
0

내 하이브리드 모바일 응용 프로그램 (안드로이드 및 ios 용으로 개발 중)에서 아래 코드 window.open("sample.html","_blank","location=yes")을 사용하여 inappbrowser에서 sample.html 페이지를 시작합니다. 이것으로 inappbrowser 창이 열리고 안드로이드에 'X'마크가있는 url bar와 ios의 하단에 'Done'버튼이있는 sample.html 페이지가로드됩니다. 안드로이드에서 'X'마크를 클릭하거나 ios에서 '완료'버튼을 클릭하면 인앱 브라우저가 닫힙니다. 이제 sample.html의 버튼을 클릭 할 때 동일한 동작을 원합니다. window.close()를 사용했지만 작동하지 않습니다.inappbrowser에서 시작한 페이지의 버튼을 클릭하면 inappbrowser에서 phonegap을 닫는 방법은 무엇입니까?

내 응용 프로그램에 IBM 워크 라이트 프레임 워크를 사용하고 있습니다.

답변

0

InAppBrowser은 코르도바와 함께 제공되는 기능입니다.
을 모두 포함하여 자세한 내용을 볼 수 있습니다.

InAppBrowser 인스턴스를 "within"에서 닫을 수있는 방법이 없으므로이를 해결해야합니다. 당신의 sample.html에서

Sample project

  1. 은 다음과 같이 몇 가지 '가까운'링크를 추가, 예를 들면 다음과 같습니다 :

    <!-- Point to some non-existing end-point; 
        We'll catch the error and use it to close the InAppBrowser. --> 
    <a href="/close">Close</a> 
    

    당신은 링크 스타일을 지정할 수 있습니다
    는 여기를 달성하기 위해 하나의 방법입니다 버튼처럼 보이게하려면 버튼처럼 보이게하십시오.

  2. 작업등의 앱에서 공통 \ main.js에서
  3. 것은 예를 들어, 다음을 추가

    var InAppBrowserReference; 
    
    function wlCommonInit(){ 
    
    } 
    
    function openInAppBrowser() { 
        // Use location=no,toolbar=no in order to hide the supplied 'close' buttons 
        // by the InAppBrowser instance. 
        InAppBrowserReference = window.open('sample.html', '_blank', 'location=no,toolbar=no'); 
        InAppBrowserReference.addEventListener('loaderror', closeInAppBrowser); 
    } 
    
    function closeInAppBrowser(event) { 
        if (event.url.match("/close")) { 
         InAppBrowserReference.close(); 
        } 
    } 
    
  4. 위의 코드에서

, openInAppBrowser()을 위해 공통 \ index.html을 호출한다 간단히하기 위해 InAppBrowser를여십시오.

+0

나는 비슷한 옵션을 이미 시도했지만 나에게는 그다지 효과가 없었다. inappbrowser 참조 변수에 할당 된 모든 addeventlistners는 해당 이벤트가 index.html에서 실행되지만 sample.html에서는 실행되지 않을 때 작동한다고 생각합니다. 필자의 경우 loaderror 이벤트/함수는 sample.html 페이지에서 버튼/링크를 클릭하면 실행되어야합니다. 내가 제대로 이해하지 못한다면 알려주십시오. – user3878988

+0

@ user3878988, 샘플 프로젝트에 대한 답변보기 –

+0

응용 프로그램이 최근 발표 된 Worklight Foundation 6.3 (현재 MobileFirst Platform Foundation)을 사용하여 작성 되었음에 유의하십시오. 따라서 이전 버전의 Worklight를 사용하는 경우 index.html, sample.html 및 main.js의 코드를 자신의 프로젝트에 복사하면됩니다. –

관련 문제