Android-WebView的使用

来源:互联网 发布:犬神带什么御魂 知乎 编辑:程序博客网 时间:2024/04/30 14:02

1、设置:

权限设置:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available

js设置: 如果访问的页面中有Javascript,则webview必须设置支持Javascript。webview.getSettings().setJavaScriptEnabled(true);  否则,页面的js将不会起作用.

滚动条设置:
webView.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY); 

webView.setHorizontalScrollBarEnabled(false);
        webView.setVerticalScrollBarEnabled(false);

字体设置:

        webView.getSettings().setDefaultFontSize(10);  

或者用 webView.getSettings().setTextSize(WebSettings.TextSize.LARGER);但是这种方法的TextSize只有Smallest、Smaller、Normal、Larger、Largest五种,大小封装在TextSize里面,不能自由修改.

设置缓存模式:setCacheMode


自适应:

webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);当调用本地asset里面的html页面,如webView.loadUrl("file:///android_asset/help.html"),有时候需要使本地的html页面自适应屏幕。


2、监听:

webView.setWebChromeClient(new WebChromeClient() {

       // 用来设置进度条等。
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                if (newProgress == 100) {
                    // pd.dismiss();
                    pb.setVisibility(View.INVISIBLE);
                }
            }


        });

        webView.setWebViewClient(new WebViewClient() {

           // 在加载页面时响应

       @Override
            public void onPageStart(WebView view, String url) {
                
            }

            // 在加载页面结束时响应
            @Override
            public void onPageFinished(WebView view, String url) {
                
            }

          // 在加载出错时响应
            @Override
            public void onReceivedError(WebView view, int errorCode, String description,
                    String failingUrl) {
            }


            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

            }
        });


3、加载

加载url:webView.loadUrl(url);

加载本地的html页面:webView.loadUrl("file:///android_asset/help.html")  本地资源一般存放在asset中。


4、后退处理

如果直接点击back按钮,是这个activity来监听该事件,如果仅仅是想要在webview实现回退,需要重写back按钮的监听事件。

    public boolean onKeyDown(int keyCode, KeyEvent event) {        
            if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {        
            mWebView.goBack();
            return true;        
            }        
            return super.onKeyDown(keyCode, event);        
    }

5、其他

Android 上的 webview 和 iphone 的 webview 区别。
1 、 Android 上, webview 不支持多点触控,没有 ongesture 系列事件,而 iphone 上有。
        2 、 Android 上的 webview 不支持透明, iphone 上可以

原创粉丝点击