您的位置:首页 > 移动开发 > Android开发

Android WebView学习(参考代码)

2015-01-26 16:59 399 查看
参考代码如下:

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

[java] view
plaincopy





mWebView = (WebView) this.findViewById(R.id.mWebview);

mWebView.loadUrl(url);

2.加载一个本地存放在assets文件下的html文件

[java] view
plaincopy







webView.loadUrl("file:///android_asset/XX.html")


注意:当你在本地html文件中用到图片,js等的时候就要注意加载的方式,我在刚刚开始的时候也是通过上面的方法直接加载,结果都是失败的,在这里首先我们要在本地的html文件中配置img,js的方式要如:<img src="file:///android_asset/img/01.jpg"/>的格式,然后将整个html文件的内容获取,最后调用

[java] view
plaincopy





wv_liebao.loadDataWithBaseURL("file:///android_asset/my.html",Str_html, "text/html", "utf-8", null);

其中第二个参数就是整个html的的String

3.
Webview之WebSetting

1.webview允许加载js(详细用法后面介绍)

[java] view
plaincopy





mWebView.getSettings().setJavaScriptEnabled(true);

2.webview 允许调用本地文件

[java] view
plaincopy





mWebView.getSettings().setAllowFileAccess(true);

3.webview 自适应手机屏幕大小

[java] view
plaincopy





wv_liebao.getSettings().setUseWideViewPort(true);

wv_liebao.getSettings().setLoadWithOverviewMode(true);


其他操作设置参考:http://blog.csdn.net/k1457047898/article/details/35579261

http://blog.csdn.net/zhanglongit/article/details/9018693
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: