首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不调用WebChromeClient OnJSAlert

不调用WebChromeClient OnJSAlert
EN

Stack Overflow用户
提问于 2015-06-13 07:09:04
回答 1查看 2K关注 0票数 1

我正在WebView中运行一个JS脚本。脚本向WebView发出警告消息,我想在我的应用程序中接收它。问题是,在定义方法时,onJSAlert没有被调用,我也不能使用@Override注释。

我的进口品是-

代码语言:javascript
复制
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.JsResult;
import android.webkit.WebSettings;

我用WebView就像这样-

代码语言:javascript
复制
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代码是

代码语言:javascript
复制
 <html>
   <body >
     <div onclick="alert('CLICK')"> Click Me !!  </div>
   </body>
</html>

当我运行这个应用程序时,onProgressChanged文件会被加载并被调用--我可以看到写着“完成加载”的日志消息。当我单击加载页面上的链接时,不会调用onJSAlert --我不会收到日志消息,相反,我可以看到一个对话框窗口,该窗口在我的设备上弹出并带有警告消息。

如果我试图在@Override开头使用onJSAlert注释,就会得到错误--“类型为MainActivity.MyWebClient的方法onJSAlert(WebView、String、String、JsResult)必须覆盖或实现超类型方法”。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-13 07:33:46

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

onJSAlert

改为:

onJsAlert

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30816047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档