【问题标题】:Cordova - Trying to execute a function inside a webviewCordova - 试图在 webview 中执行一个函数
【发布时间】:2015-07-16 23:08:17
【问题描述】:

我的网站上有一个 webview 在我的应用程序中运行良好。我现在要做的是在用户点击 Android Back 按钮时询问他们是否真的想离开应用程序。 我正在使用 InAppBrowser 插件。这是我的代码。

document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova is ready
        function onDeviceReady() {
            navigator.splashscreen.show();
            var ref = window.open("http://m.estadao.com.br", "_self", "location=no");

            ref.addEventListener('loadstop', function(){
                ref.executeScript({
                    code:  
                        document.addEventListener("backbutton", onBackKeyDown, false);
                        function onBackKeyDown() {
                            navigator.notification.confirm(
                                "Tem certeza que deseja sair?",
                                function(buttonIndex){
                                    confirmExit(buttonIndex);
                                },
                                "Aviso",
                                "Ok, Cancel"
                            );
                        }
                        function confirmExit(stat){
                            if (stat == "1"){
                                navigator.app.exitApp();
                            } else {
                                window.open("http://m.estadao.com.br", "_self", "location=no", "zoom=no");
                            }
                        };
                });
            });
        }

这是插件的链接 http://cordova.apache.org/docs/en/2.7.0/cordova_inappbrowser_inappbrowser.md.html#executeScript

知道我该怎么做才能让它工作吗?谢谢!

【问题讨论】:

  • 你能说得清楚一点吗?你到底想做什么?您在使用应用内浏览器或后退按钮时遇到问题吗?
  • 我在使用应用内浏览器时遇到问题。我正在尝试在我的 webview 中注入一些 javascript。
  • @ShinyJos 经过一些调试后,我很确定我的脚本可以正常工作。真正的问题是 InAppBrowser 看起来不接受多行代码。我尝试使用“文件:”而不是“代码:”,但它也不起作用。
  • Inapp-browser 无法让我们返回应用,除非外部事件关闭了应用内浏览器。这就是为什么您的代码会这样。我遇到了同样的问题,并使用了上述 webView 的替代解决方案

标签: android jquery cordova webview inappbrowser


【解决方案1】:

我假设您的问题是 webview 加载后没有触发后退按钮事件。这是为 webview 使用 in-appbrowser 插件时的常见问题。它加载页面,但我们失去了对页面的控制。使用以下插件 https://github.com/Wizcorp/phonegap-plugin-wizViewManager/ 用于 web 视图。它在您的 phonegap 应用程序中创建了一个自定义 webview,您仍然可以控制后退按钮,您还可以定义 webView 的大小

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2011-07-04
    相关资源
    最近更新 更多