2016-06-01 2 views
0

Этот вопрос был поднят уже несколько раз. Но я все еще борюсь с проблемой, не имея понятия, как ее решить.Телефонная кнопка Android назад закрывается 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> 

На PhoneGap форуме я прочитал, что аппаратные назад функциональность Android кнопка была добавлена ​​по умолчанию. Но это не работает для меня, все еще.

Желаемое поведение: перейдите по нескольким ссылкам на странице, коснитесь назад и просмотрите предыдущие страницы, в соответствии с историей.

Фактическое поведение: после перехода по нескольким ссылкам и нажатием на кнопку inAppBrowser, я вижу белый экран вместо предыдущей страницы.

Как вы можете видеть, я добавил свойство hardwareback также, но не повезло. Кроме того, я попытался угнать ти назад поведение кнопки с вводом этого кода onDeviceReady функции:

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

И опять не повезло. Пробовал несколько разных устройств, все равно. Я думаю, есть очень простая вещь, которую мне не хватает. Есть идеи?

Если это важно, я создаю приложение на сайте build.phonegap.com.

+0

Вы пытались вставить ['window.history.back()'] (http://www.w3schools.com/jsref/met_his_back.asp), используя ['inAppBrowserRef.executeScript ({code: scriptErrorMesssage})'] (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 плагин. Без этой спецификации PGB использует старую версию из устаревшего репо.

Смежные вопросы