参考代码如下:
public class MainActivity extends Activity {
private Button mButton;
private WebView mWebView;
private ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.mButton);
mWebView = (WebView) findViewById(R.id.mWebView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new MyWebViewClient());
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
runOnUiThread(new Runnable(){
@Override
public void run() {
mWebView.loadUrl("http://account.moretv.com.cn/sources/weixin/qr.html");
}
});
}
});
}
//按back键可以回到上个网页
@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{
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public boolean shouldOverrideUrlLoading(WebView view, String url) {
<span style="white-space:pre"> </span>view.loadUrl(url);
<span style="white-space:pre"> </span>return true;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>// 开始加载网页时要做的工作
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void onPageStarted(WebView view, String url, Bitmap favicon) {
<span style="white-space:pre"> </span> mWebView.setVisibility(4);
<span style="white-space:pre"> </span> pd = ProgressDialog.show(MainActivity.this, "", "",true,true);
<span style="white-space:pre"> </span>super.onPageStarted(view, url, favicon);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>// 加载完成时要做的工作
<span style="white-space:pre"> </span>@Override<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public void onPageFinished(WebView view, String url) {
<span style="white-space:pre"> </span>pd.dismiss();
<span style="white-space:pre"> </span>mWebView.setVisibility(0);
<span style="white-space:pre"> </span>super.onPageFinished(view, url);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>// 加载错误时要做的工作
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void onReceivedError(WebView view, int errorCode,
<span style="white-space:pre"> </span>String description, String failingUrl) {
<span style="white-space:pre"> </span>Toast.makeText(MainActivity.this, "抱歉,加载出错了", 0).show();
<span style="white-space:pre"> </span>super.onReceivedError(view, errorCode, description, failingUrl);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}
Android中webView组件
1. Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装成名为WebView的组件,浏览器能做的,webview也可以实现。
2.webView的基本用法
1.加载一个网络的url
- mWebView = (WebView) this.findViewById(R.id.mWebview);
- mWebView.loadUrl(url);
2.加载一个本地存放在assets文件下的html文件
- webView.loadUrl("file:///android_asset/XX.html")
- wv_liebao.loadDataWithBaseURL("file:///android_asset/my.html",Str_html, "text/html", "utf-8", null);
其中第二个参数就是整个html的的String
3. Webview之WebSetting
1.webview允许加载js(详细用法后面介绍)
- mWebView.getSettings().setJavaScriptEnabled(true);
2.webview 允许调用本地文件
- mWebView.getSettings().setAllowFileAccess(true);
3.webview 自适应手机屏幕大小
- wv_liebao.getSettings().setUseWideViewPort(true);
- wv_liebao.getSettings().setLoadWithOverviewMode(true);