webview怎么显示完整网页
发布网友
发布时间:2022-04-29 23:50
我来回答
共2个回答
热心网友
时间:2022-05-13 20:00
在AndroidManifest.xml设置访问网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
控件:
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView"
/>
用途一:加载本地/Web资源
example.html 存放在assets文件夹内
调用WebView的loadUrl()方法,
加载本地资源
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/example.html");
加载web资源:
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://.com");
用途二:在程序内打开网页
创建一个自己的WebViewClient,通过setWebViewClient关联
复制代码
package com.example.testopen;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
init();
}
private void init(){
webView = (WebView) findViewById(R.id.webView);
//WebView加载web资源
webView.loadUrl("http://.com");
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean sho www.hnne.com uldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
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) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(webView.canGoBack())
{
webView.goBack();//返回上一页面
return true;
}
else
{
System.exit(0);//退出程序
}
}
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);
热心网友
时间:2022-05-13 21:18
实现方法:
建立一个android工程,编辑.java文件:
[java] view plaincopyprint?
package com.android;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class WebTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final String mimetype = "text/html";
final String encoding = "utf-8";
WebView wv;
wv = (WebView) findViewById(R.id.wv);
wv.loadData("<a href ='http://blog.csdn.net/imyang2007?viewmode=contents'>Young's Blog</a>", mimetype, encoding);
}
}
用XML layout来对UI布局,编辑main.XML:
[html] view plaincopyprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<WebView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/wv"
/>
</LinearLayout>
在这里定义了一个WebView标签,并把该标签的id命名为wv,通过指定ID属性给View的方式,让应用程序在运行时期(run-time)找到相应的view对象。在就是findViewById在代码中的作用,在我们编辑main.XML文件后,R.java文件也会对应更新,我们可以看见在R.java中,多了一个:
[java] view plaincopyprint?
public static final class id {
public static final int wv=0x7f050000;
}
取得WebVeiw对象后,调用WebView.loadData方法,将HTML内容载入到webview,并显示在Activity上。loadData参数:
HTML内容
MimeType类型,指定为text/html,即为HTML文件
文字编码方式,utf-8,Unicode方式。