欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安卓webview

程序员文章站 2022-04-26 18:37:59
...

第一种加载方法webView.loadurl()

第一式
 webView.loadUrl("https://www.baidu.com/");
public class WebViewActivity extends AppCompatActivity {
private WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        webView=findViewById(R.id.webView);
        webView.loadUrl("https://www.baidu.com");
        webView.setWebViewClient(new WebViewClient());
    }
}
第二式

去访问手机里面的sd卡中的文件

  webView.loadUrl("file://"+ Environment.getExternalStorageDirectory().getPath()+"/1/index.html");
第三式

去访问安卓资源

   webView.loadUrl("file:///android_asset/index.html");

第二种加载方法webView.loadurl(+map<>)

 webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                Map<String,String>reqHeader=new HashMap<>();
                reqHeader.put("android-webview-demo","textRequest");
                webView.loadUrl("http://172.26.48.1:8080",reqHeader);

                return super.shouldOverrideUrlLoading(view, request);
            }
        });

放入请求头部

第三种加载方法 webView.loadData()

 webView.loadData("<h1>Hello World</h1>","text/html","utf-8");

打印出HelloWorld

第四种加载方法 webView.loadData()

 webView.loadDataWithBaseURL("http://www.imooc.com","<img src=\"/static/img/index/logo.png\"/>","text/html","utf-80",null);

基于地址去加载东西安卓webview

histroyurl 就表示按后退键会退到哪个网址上

webview的生命周期

 @Override
    protected void onPause() {
        super.onPause();
        //停止webview
        webView.onPause();
        //停止所有webview
        webView.pauseTimers();
    }

    @Override
    protected void onResume() {
        super.onResume();
        //开始webview
        webView.onResume();
        //开始所有webview
        webView.resumeTimers();

    }

不及时停止可能造成内存泄漏

WebSetting类

安卓webview
支持js

 WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);

支持缩放

//支持缩放
  settings.setSupportZoom(true);
  //支持网页内置原生缩放工具
        settings.setBuiltInZoomControls(true);
   ////支持安卓原生缩放工具
        settings.setDisplayZoomControls(true);

webseting的缓存操作setCacheMode()

安卓webview

WebviewClient类

安卓webview
反正 shouldInterceptRequest 肯定在onLoadResource之前

安卓webview
onpagestart和shouldInterceptRequest不一定

shouldInterceptRequest返回为空时候是webview自己去处理 如果我们想要处理就

            @Nullable
            @Override
            public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
                String url = request.getUrl().toString();

                WebResourceResponse webResourceResponse = super.shouldInterceptRequest(view, request);
                if ("http://www.baodu.com".equals(url)){
                    return new WebResourceResponse("text/html","utf-8",null);
                }
                return webResourceResponse;
            }

webclient处理网页加载时的回调的方法

安卓webview

WebChromeClient

告诉宿主应用程序加载页的当前进度。

 public void onProgressChanged(WebView view, int newProgress) {}

将文档标题的更改通知宿主应用程序。

public void onReceivedTitle(WebView view, String title) {}

通知宿主应用程序当前页的新favicon。

 public void onReceivedIcon(WebView view, Bitmap icon) {}
相关标签: webview