WebView支持JS、Alert以及进度监控等

1、支持JS

使用WebView支持JS,代码比较简单,直接可以在代码中设置一句话,如下:

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDefaultTextEncodingName("utf-8") ;

JS的支持主要是实现如下方法:

public void addJavascriptInterface(Object obj, String interfaceName) {
    }

要注意WebView的安全监测机制,需要在API版本17以上可以使用,加上标识:

@JavascriptInterface

2、 背景透明

WebView如果要设置背景透明,在高版本的应用中,需要设置硬件加速机制,代码如下:

        //在高版本的Android系统中,需要关闭硬件加速才能让背景透明
        if(android.os.Build.VERSION.SDK_INT >= 11){
            mWebView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
        }

3、WebView支持调试

Android提供了WebView在Chrome上的调试功能,需要首先设置手机为可以调试状态,同时在代码中设置自定义的WebView可以调试,代码如下:

        // 设置webview为调试模式
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            WebView.setWebContentsDebuggingEnabled(true);
        }

4、支持Alert弹窗

如果我们要支持Alert弹窗,需要实现WebChromeClient当中的一些方法,WebChromeClient中的一些重要方法如下:

  • onCloseWindow(关闭WebView)
  • onCreateWindow()
  • onJsAlert (WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出)
  • onJsPrompt()
  • onJsConfirm()
  • onProgressChanged(进度显示)
  • onReceivedIcon(网站图标)
  • onReceivedTitle(网站标题)

支持Alert弹窗,主要是重写onJsAlert()方法

5、支持错误页面

错误页面的监控主要在WebViewClient这个类完成,它主要是帮助WebView处理各种通知、请求事件的,具体来说包括:

  • onLoadResource
  • onPageStart
  • onPageFinish
  • onReceiveError //这个就是我们想要的方法
  • onReceivedHttpAuthRequest

自定义404界面等信息,就可以通过重写onReceiveError()完成!

猜你喜欢

转载自blog.csdn.net/ljtyzhr/article/details/49448205