2016-06-01 5 views
0

이 질문은 이미 여러 번 제기되었습니다. 그러나 나는 그것을 해결하는 방법을 모르는 상태에서 여전히 문제로 고심하고있다.Phonegap 안드로이드 버튼이 inAppBrowser를 닫습니다.

내 매우 원시적 응용 프로그램 코드 :

<!DOCTYPE html> 
<html> 
<head> 
<title>Standalone Example</title> 

<script type="text/javascript" charset="utf-8" src="cordova.js"></script> 
<script type="text/javascript" charset="utf-8"> 
document.addEventListener("deviceready", onDeviceReady, false); 
var iabRef = null; 

function onDeviceReady() { 
    iabRef = window.open('http://example.com', '_blank', 'location=no', 'zoom=no', 'hardwareback=yes'); 
    iabRef.addEventListener('exit', iabClose); 
} 

function iabClose(event) { 
iabRef.removeEventListener('exit', iabClose); 
} 
</script> 
</head> 
<body> 
</body> 
</html> 

은 폰갭 포럼에 나는 안드로이드 하드웨어 뒤로 버튼 기능이 기본적으로 추가 된 것을 읽었다. 그러나 그것은 여전히 ​​나를 위해 작동하지 않습니다.

원하는 동작 : 페이지의 여러 링크를 탐색하고 뒤로 탭하여 이전 페이지를 볼 수 있습니다.

실제 동작 : 여러 링크를 탐색 한 후 inAppBrowser를 다시 누르면 이전 페이지 대신 흰색 화면이 나타납니다.

내가 알듯이 hardwareback 속성도 추가되었지만 운이 없습니다.

document.addEventListener("backbutton", function(e){ 
    e.preventDefault(); 
    navigator.app.backHistory() 
}, false); 

그리고 다시 행운을 : 나는 또한 TI는 onDeviceReady 함수 내에서이 코드를 넣어 함께 버튼 동작을 다시 납치했습니다. 몇 가지 다른 기기에서 시도해 보았습니다. 나는 나가 놓친 아주 간단한 일이다는 것을 짐작한다. 어떤 아이디어?

중요한 점은 build.phonegap.com에 앱을 빌드한다는 것입니다.

+0

[inAppBrowserRef.executeScript ({code : scriptErrorMesssage})]를 사용하여 ['window.history.back()'] (http://www.w3schools.com/jsref/met_his_back.asp)을 주입 해 보았습니까? (https://github.com/apache/cordova-plugin-inappbrowser#inappbrowserexecutescript)? – daserge

+0

@daserge, 'backbutton'이벤트 리스너를 사용 하시겠습니까? 그렇다면 다시 운이 없었습니다. – Denis

답변

0

문제는 내가 잘못된 방법으로 IAB라는 것이 었습니다, 그것은

iabRef = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes'); 

이 또한 내가 IAB 플러그인 NPM 할 수있는 소스를 지정해야해야한다. 이 사양이 없으면 PGB는 사용되지 않는 버전의 이전 버전을 사용합니다.