Android WebView加载网页示例

1.定义WebView控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_dialong_select"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00000000"
    android:orientation="vertical">

    <include layout="@layout/top" />

   <WebView
       android:id="@+id/wv"
       android:layout_width="match_parent"
       android:layout_height="match_parent"></WebView>

</LinearLayout>

2.Activity加载网页

public class WebViewTest extends BaseActivity {
    @BindView(R.id.wv)
    WebView wv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview_test);
        ButterKnife.bind(this);
        initWebView();
        wv.loadUrl("http://47.103.36.50:8066/test/aa.html");
    }

    private void initWebView() {
        WebSettings webSettings = wv.getSettings();
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//支持js调用window.open方法
        webSettings.setAllowFileAccess(true);// 设置允许访问文件数据
        webSettings.setSupportMultipleWindows(false);// 设置允许开启多窗口
        webSettings.setDomStorageEnabled(true);
        webSettings.setJavaScriptEnabled(true);// 设置支持javascript
        wv.setWebChromeClient(new WebChromeClient() {
            @Override
            public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {

                WebView web2 = new WebView(WebViewTest.this);//新创建一个webview
                web2.setWebViewClient(new WebViewClient() {
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        wv.loadUrl(url);//将拦截到url交由第一个WebView打开
                        return true;
                    }
                });
                WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
                //以下的操作应该就是让新的webview去加载对应的url等操作。
                transport.setWebView(web2);
                resultMsg.sendToTarget();
                return true;
            }
        });
        wv.setWebViewClient(new WebViewClient());
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && wv.canGoBack()) {
            wv.goBack();//返回上个页面
            return true;
        }
        return super.onKeyDown(keyCode, event);//退出H5界面
    }
}

版权声明:本文为qq_26981913原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。