首页 > 代码库 > Android WebView的使用
Android WebView的使用
WebView是View的一个子类,使用它可以在App中嵌入H5页面,可以跟js互相调用。
webview有两个方法:setWebChromeClient和setWebClient
setWebClient:主要处理解析、渲染网页等浏览器做的事情
setWebChromeClient:辅助WebView处理JavaScript的对话框,网站图标、网站title和加载进度等
WebViewClient就是帮助WebView处理各种通知、请求事件
使用WebView的时候,必须在AndroidManifest.xml设置访问网络权限:
<uses-permission android:name="android.permission.INTERNET" />
控件
<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent"></WebView>
用途一:加载本地/Web资源
使用WebView的loadUrl()方法
1、加载本地资源
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/example.html");
2、加载web资源
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");
用途二:在app里面直接打开网页
创建一个WebViewClient,通过setWebViewClient关联
webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
用途三:如果访问的页面中有Javascript,则webview必须设置支持Javascript
//启用支持javascript WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true);
用途四:如果希望浏览网页时后退不是退出浏览器,则需要WebView覆盖URL加载,自动生成历史访问记录
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Check if the key event was the Back button and if there‘s history if ((keyCode == android.view.KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { // 返回键退回 webView.goBack(); return true; } // If it wasn‘t the Back key or there‘s no web page history, bubble up // to the default // system behavior (probably exit the activity) return super.onKeyDown(keyCode, event); }
用途五:判断页面加载过程
webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { // TODO Auto-generated method stub if (newProgress == 100) { // 网页加载完成 } else { // 加载中 } } });
用途六:使用缓存
优先使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webSetting的其它常用设置:
setJavaScriptEnabled(true); //支持js setPluginsEnabled(true); //支持插件 setUseWideViewPort(false); //将图片调整到适合webview的大小 setSupportZoom(true); //支持缩放 setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持内容重新布局 supportMultipleWindows(); //多窗口 setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存 setAllowFileAccess(true); //设置可以访问文件 setNeedInitialFocus(true); //当webview调用requestFocus时为webview设置节点 webview webSettings.setBuiltInZoomControls(true); //设置支持缩放 setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口 setLoadWithOverviewMode(true); // 缩放至屏幕的大小 setLoadsImagesAutomatically(true); //支持自动加载图片
Android WebView的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。