使用WebView的一个简单Demo

01 效果图

使用WebView的一个简单Demo_第1张图片
WebViewDemo.png

02 layout

activity_main.xml

    
        
        
    

03 activity

public class MainActivity extends Activity implements OnClickListener {
    private WebView mWebView;
    private LinearLayout ll_root;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        intiUI();
    }

    private void intiUI() {
        ImageView iv_search = (ImageView) findViewById(R.id.iv_search);
        iv_search.setOnClickListener(this);
        ll_root = (LinearLayout) findViewById(R.id.ll_root);
        // 最好不要在xml中定义 Webview ,而是在需要的时候创建,
        // 并且Context使用 getApplicationgContext()
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, 0, 1);
        mWebView = new WebView(getApplicationContext());
        mWebView.setLayoutParams(params);
        ll_root.addView(mWebView);

        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        mWebView.requestFocusFromTouch();
        WebSettings settings = mWebView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
    }

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

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
        case R.id.iv_search:
            EditText et_query_url = (EditText) findViewById(R.id.et_query_url);
            String url = et_query_url.getText().toString();
            if (TextUtils.isEmpty(url)) {
                Toast.makeText(this, "请输入网址", Toast.LENGTH_SHORT).show();
            } else {
                mWebView.loadUrl(url);
            }
            break;
        }
    }

    @Override
    protected void onDestroy() {
        // 在 Activity 销毁的时候,可以先让 WebView 加载null内容,
        // 然后移除 WebView,再销毁 WebView,最后置空。
        if (mWebView != null) {
            mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
            mWebView.clearHistory();

            ll_root.removeView(mWebView);
            mWebView.destroy();
            mWebView = null;
        }
        super.onDestroy();
    }
}

04 permission


你可能感兴趣的:(使用WebView的一个简单Demo)