Один из способов сделать это - вставить кнопку на веб-страницу, сгенерировав ее в приложении Cordova. Webview:
var inAppBrowserRef = cordova.InAppBrowser.open("http://www.mypage.com", "_blank");
inAppBrowserRef.addEventListener('loadstop', function(e) {
inAppBrowserRef.executeScript({
code: '\
var body = document.querySelector("body");\
var button = document.createElement("div");\
button.innerHTML = "Return to app";\
button.classList.add("close_button");\
button.onclick = function() {\
webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify({action: "closeIAB"}));\
};\
body.appendChild(button);\
'
});
});
Затем вы добавляете прослушиватель для сообщения, которое публикуется при нажатии кнопки, закрывающей окно приложения:
inAppBrowserRef.addEventListener("message", function (params){
if(params.data.action === "closeIAB"){
inAppBrowserRef.close();
}
});
Вы также можете добавить стиль кнопки в приложении Cordova:
inAppBrowserRef.insertCSS({
"code": "\
.close_button {\
position: fixed;\
bottom: 0;\
z-index: 500;\
width: 100%;\
background: white;\
color: black;\
padding: 10px;\
font-size: 20px;\
}"
});
Или, если хотите, добавьте стиль кнопки в CSS на своей веб-странице (если она находится под вашим контролем).
Точно так же, если вам не нравится идея динамического создания кнопки HTML, вы можете включить ее как часть своей веб-страницы, но скрыть ее по умолчанию, если приложение не вводит определенный класс:
inAppBrowserRef.addEventListener('loadstop', function(e) {
inAppBrowserRef.executeScript({
code: '\
var body = document.querySelector("body");\
body.classList.add("is_app");\
'
});
});
А на вашем сайте CSS:
body:not(.is_app) .close_button{
display: none;
}
Обратите внимание, что эмуляция postMessage API , который был добавлен в cordova-plugin-inappbrowser для Android и iOS с помощью , этот PR еще не находится в последняя версия выпуска на npm (v3.0.0
), поэтому вам необходимо установить плагин непосредственно из главной ветви Github (v3.1.0-dev
):
cordova plugin add https://github.com/apache/cordova-plugin-inappbrowser