Невозможно показать подтверждение и предупреждения InAppBrowser - PullRequest
0 голосов
/ 19 июня 2020
• 1000 1025 *, который содержит iframe, который загружает URL-адрес веб-приложения.

В этом веб-приложении есть кнопка «Выйти» с подтверждением того, что я не могу показать ...

Я пробовал чтобы отменить его, но без возможных результатов:

My app. html

<html>
    <head>    
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="css/index.css">
        <title>TestApp</title>
    </head>
    <body>
        <iframe src="http://test/myapp/index.jsp" 
        sandbox="allow-forms allow-modals allow-popups allow-scripts"
        style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="scripts/platformOverrides.js"></script>
    </body>
</html>

My app. js

(function () {
        window.open = cordova.InAppBrowser.open;
        addWebViewListeners();
})();

function addWebViewListeners() {
    window.alert = function (message, callback, title, buttonName) {
        if (null == title) {
            title = "Alerta";
        }
        if (null == buttonName) {
            title = "Aceptar";
        }
        navigator.notification.alert(message, callback, title, buttonName);
    };

    window.confirm = function (message, callback, title, buttonLabels) {
        if (null == title) {
            title = "Confirmación";
        }
        if (null == buttonLabels) {
            title = "[Aceptar,Cancelar]";
        }
        navigator.notification.confirm(message, callback, title, buttonLabels);
    };
}

Функция, загружающая приложение. html

[onDeviceReady]
window.open = cordova.InAppBrowser.open;

[onClickButton]
function goToApp() {
   window.open('iframe.html', '_self', 'location=no;toolbar=no;');
}

1 Ответ

0 голосов
/ 19 июня 2020

InAppBrowser запускает собственное представление, оно не является частью веб-представления основного приложения. Если вы sh добавляете код к содержимому, отображаемому в InAppBrowser, вам нужно будет использовать executeScript.

В приведенном ниже примере кода будет отображаться предупреждение каждый раз, когда запускается событие loadstop.

myWindow = window.open('https://www.google.com', "_blank", "location=yes,hidden=no,closebuttoncaption=Close");
myWindow.addEventListener("loadstop", 
    function (e) {
        myWindow.executeScript({
            code: "(function() { alert('hello'); })()"
        }
    }
);
...