Android开发-WebView

作者: 星星星宇 | 来源:发表于2020-10-30 13:25 被阅读0次

    WebView

    • 加载网页
      1.加载URL(网络或者本地assets文件下的html文件)
      2.加载htmL代码
      3.Native和JavaScripte相互调用

    效果图


    WebView效果图

    WebView layout

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        //在某些低版本手机上使用WebView崩溃??  
        <WebView
            android:id="@+id/wv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>
    

    WebViewActivity

    public class WebViewActivity extends AppCompatActivity {
    
        private WebView mWebView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_web_view);
            mWebView = findViewById(R.id.wv);
    //        mWebView.loadUrl("file:///android_asset/test.html");
    
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.setWebViewClient(new MyWebViewClient());
            mWebView.setWebChromeClient(new MyWebChromeClient());
    //        mWebView.addJavascriptInterface();
            mWebView.loadUrl("https://m.baidu.com");
        }
    
        class MyWebChromeClient extends WebChromeClient {
    
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
            }
    
            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
                setTitle("百度一下");
            }
    
        }
    
        class MyWebViewClient extends WebViewClient {
    
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                // 限制使用内置浏览器
                view.loadUrl(request.getUrl().toString());
                return true;
            }
    
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                Log.d("WebView", "onPageStarted...");
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                Log.d("WebView", "onPageFinished...");
    //            mWebView.loadUrl("javascript:alert('hello')");
    //            mWebView.evaluateJavascript("javascript:alert('hello')", null);
            }
        }
    
        // 修改点击返回按钮效果
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {
                mWebView.goBack();
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
    }
    

    相关文章

      网友评论

        本文标题:Android开发-WebView

        本文链接:https://www.haomeiwen.com/subject/ifikvktx.html