Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未调用WebChromeClient OnJSAlert_Javascript_Android_Webview_Webchromeclient - Fatal编程技术网

Javascript 未调用WebChromeClient OnJSAlert

Javascript 未调用WebChromeClient OnJSAlert,javascript,android,webview,webchromeclient,Javascript,Android,Webview,Webchromeclient,我正在WebView中运行JS脚本。该脚本向WebView发出消息警报,我希望在我的应用程序中接收该消息。问题是没有调用onJSAlert,也不能在定义方法时使用@Override注释。 我的进口是- import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.webkit.JsResult; import and

我正在WebView中运行JS脚本。该脚本向WebView发出消息警报,我希望在我的应用程序中接收该消息。问题是没有调用
onJSAlert
,也不能在定义方法时使用
@Override
注释。
我的进口是-

import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.JsResult;
import android.webkit.WebSettings;
我像这样使用网络视图-

webView = (WebView)findViewById(R.id.webView1); 
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            if (newProgress == 100) {
            Log.d("fibi", "finished loading");
            }
        }
        //@Override //If I uncomment this I get compilation error
        public boolean onJSAlert(WebView view, String url, String message, final JsResult result) {
            encResult = message;
            Log.d("fibi", encResult);
            result.cancel();
            return true;                
        }
    });
webView.loadUrl("file:///android_asset/test.html");
我的test.HTML的HTML代码是

 <html>
   <body >
     <div onclick="alert('CLICK')"> Click Me !!  </div>
   </body>
</html>

点击我!!
当我运行应用程序时,加载HTML文件并调用
onProgressChanged
——我可以看到日志消息,上面写着“已完成加载”。当我单击加载页面上的链接时,不会调用
onJSAlert
——我没有收到日志消息,而是可以看到一个对话框窗口,在我的设备上弹出警告消息。
如果我尝试在
onJSAlert
开头使用
@Override
注释,我会得到错误-“MainActivity.MyWebClient类型的onJSAlert(WebView、String、String、JsResult)方法必须重写或实现超类型方法”。

有什么想法吗?

如果使用的方法名称拼写不正确,则方法调用将无法工作

onJSAlert

改为:

onJsAlert


感谢您将setJavaScriptEnabled包含在您的示例中,这是我无法理解为什么我的警报无法工作的地方(现在很明显,我的JavaScript也没有)。