-
加载网页
-
加载url
-
加载html代码
-
native和JavaScript相互调用
-
加载网络url(webview.loadUrl)
-
加载本地url(webview.loadUrl)
-
加载html代码(webview.loadData)
-
网页的前进后退
-
webview.canGoBack()能不能返回
-
webview.goBack()
-
webview.canGoForward()
-
webview.goForward()
-
webview.canGoBackOrForward
WebViewActivity以及xml文件
package com.example.test0508;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
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);
//加载本地的url,静态文件
//mWebView.loadUrl("file:///android_asset/text.html");
//js支持
mWebView.getSettings().setJavaScriptEnabled(true);
//设置浏览器
mWebView.setWebViewClient(new MyWebViewClient());
//随着页面加载改变标题
mWebView.setWebChromeClient(new MyWebChromClient());
// mWebView.evaluateJavascript();
//加载网络的url
mWebView.loadUrl("https://m.baidu.com");
}
/**
* 监听返回键,如果能返回就返回一级,重写onKeyDown
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()){
//如果能回退,就回退一级
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
class MyWebViewClient extends WebViewClient{
//在内部加载url,不跳转
@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);
}
}
class MyWebChromClient 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(title);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<WebView
android:id="@+id/wv"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>