建设银行信用卡在网站激活后如何设置密码,曲阜文化建设示范区网站,网站建设定义是什么,怎么给公司做微网站什么是WebView
WebView是Android中UI组件的一种#xff0c;WebView基于webkit内核#xff0c;不过由于兼容性的原因在Android5.0后改为了Chromium内核。 WebView可以用来展示网页#xff0c;常用于我们不想打开浏览器但又想浏览网页的情况。
WebView的使用
WebVeiw的常用…什么是WebView
WebView是Android中UI组件的一种WebView基于webkit内核不过由于兼容性的原因在Android5.0后改为了Chromium内核。 WebView可以用来展示网页常用于我们不想打开浏览器但又想浏览网页的情况。
WebView的使用
WebVeiw的常用方法
加载网页的四种方式
loadUrl(String url) //打开百度网页webView.loadUrl(https://www.baidu.com/);//打开sdcard卡的html页面//webView.loadUrl(file:// Environment.getExternalStorageDirectory() /1/index.html);//资源文件下的html页面//webView.loadUrl(file://android_asset/index.html);//设置在当前页面打开要显示的网页webView.setWebViewClient(new WebViewClient());loadUrl(String url, MapString, String additionalHttpHeaders) 第一个参数是要加载网页的url第二个参数是键值对形式的请求参数会被加入到请求头中。 webView.setWebViewClient(new WebViewClient() {Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {MapString,String reqHeaders new HashMap();reqHeaders.put(android-webview-demo,testRequestHeaders);webView.loadUrl(https://www.baidu.com/);return super.shouldOverrideUrlLoading(view, url);}});loadData(String data, String mimeType, String encoding) 可以将一段html代码加载到网页中 webView.loadData(h1hello world/h1,text/html,utf-8);loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) 这里要加载的网页的url是baseUrldatamimeType是响应类型encoding是编码historyUrl设置回退时回退到哪个网页 webView.loadDataWithBaseURL(https://www.imooc.com/,img src \static/img/index/logo2020.png\/ a href \https://www.baidu.com\百度/a,text/html,utf-8,https://www.sogou.com);webView.setWebViewClient(new WebViewClient());控制网页的前进和后退
boolean canGoBack()是否可以后退 boolean canGoForward()是否可以前进 boolean canGoBackOrForward(int steps)是否可以前进或后退一定步数负数代表后退正数代表前进 void clearHistory()清除历史 void goBack()后退 void goForward()前进 void goBackOrForward(int steps)前进或后退一定步数负数代表后退正数代表前进
public void onClear(View view) {webView.clearHistory();}public void onCanBack(View v) {Toast.makeText(this,String.valueOf(webView.canGoBack()),Toast.LENGTH_SHORT).show();}public void onGoBack(View v) {webView.goBack();}public void onCanGoForward(View v) {Toast.makeText(this,String.valueOf(webView.canGoForward()),Toast.LENGTH_SHORT).show();}public void onGoForward(View v) {webView.goForward();}public void onCanGoBackOrForward(View v) {int steps Integer.valueOf(et.getText().toString());Toast.makeText(this,String.valueOf(webView.canGoBackOrForward(steps)),Toast.LENGTH_SHORT).show();}public void onGoBackOrForward(View v) {int steps Integer.valueOf(et.getText().toString());webView.goBackOrForward(steps);}WebView的状态管理
WebView的状态管理用于 WebView的 onPause() onResume() resumeTimers() pauseTimers() destroy()
WebSettings
使用WebSettings可以对webview进行配置和管理。 控制网页的缩放 setSupportZoom(boolean)是否支持缩放 setBuiltInZoomControls(boolean)设置内置的缩放控件 setDisplayZoomControls(boolean)是否隐藏原生的缩放控件 控制网页缓存策略 LOAD_CACHE_ONLY永远不使用网络只去本地缓存没有缓存则不会加载 LOAD_CACHE_ELSE_NETWORK只要本地有缓存无论是否过期都会去使用本地缓存没有缓存才会去加载网络 LOAD_DEFAULT根据cache-control决定是否从网络获取 LOAD_NO_CACHE永远不使用缓存只从网络获取 WebSettings settings webView.getSettings();//设置要访问的页面可以运行jssettings.setJavaScriptEnabled(true);//设置可以进行缩放settings.setSupportZoom(true);settings.setBuiltInZoomControls(true);settings.setDisplayZoomControls(true);//设置缓存策略settings.setCacheMode(WebSettings.LOAD_CACHE_ONLY);WebViewClient
WebViewClient处理加载时的各种回调通知。
方法签名作用WebResourceResponse shouldInterceptRequest(WebViewview, String url)进行资源请求的时候回调void onPageStarted(WebViewview, String url, Bitmap favicon)网页已经开始加载的时候回调void onLoadResource(WebViewview, String url)加载网页资源之前回调boolean shouldOverrideUrlLoading(WebView view, String url)webview将要加载新的url时进行回调void onReceivedError(WebViewview, interrorCode, String description, String failingUrl)网页访问发生错误的时候回调void onPageFinished(WebViewview, String url)网页加载完成的时候回调public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)重载方法在Android7.0以后才能使用public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request)重载方法在Android5.0以上才能使用void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)重载方法Android6.0及以上才能使用shouldInterceptRequest方法会在onLoadResource方法之前被调用。
webView.setWebViewClient(new WebViewClient() {Overridepublic void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {super.onReceivedError(view, request, error);}Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);}/*** android7.0以上才可以使用,可以利用此方法进行方法拦截* param view* param request* return*/Overridepublic boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {return super.shouldOverrideUrlLoading(view, request);}Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {MapString,String reqHeaders new HashMap();reqHeaders.put(android-webview-demo,testReqHeaders);webView.loadUrl(http://192.168.2.124:3000, reqHeaders);return super.shouldOverrideUrlLoading(view, url);}/*** android5.0以上才能调用* param view* param request* return*/NullableOverridepublic WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {Log.d(TAG, shouldInterceptRequest: 方法被调用了);return super.shouldInterceptRequest(view, request);}NullableOverridepublic WebResourceResponse shouldInterceptRequest(WebView view, String url) {Log.d(TAG, shouldInterceptRequest: 方法被调用了 url);return super.shouldInterceptRequest(view, url);}Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {Log.d(TAG, onPageStarted: 网页开始进行加载url: url);super.onPageStarted(view, url, favicon);}Overridepublic void onLoadResource(WebView view, String url) {Log.d(TAG, onLoadResource:网页开始加载资源url: url);super.onLoadResource(view, url);}Overridepublic void onPageFinished(WebView view, String url) {Log.d(TAG, onPageFinished: 网页已经加载完成: url);super.onPageFinished(view, url);}});WebChromeClient
辅助webview去处理JavaScript对话框、标题、进度。
booleanonJsAlert(WebViewview, String url, String message, JsResultresult)在网页将要打开一个alert警告对话框的时候回调 booleanonJsPrompt(WebViewview, String url, String message, String defaultValue, JsPromptResultresult)在网页将要打开一个prompt对话框的时候回调 booleanonJsConfirm(WebViewview, String url, String message, JsResultresult)在网页将要打开一个confirm对话框的时候回调