在Android中有WebView Widget,它内置了WebKit引擎,同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源的浏览器引擎,Chrome浏览器也是基于它的。所以很多表现WebView和Chrome是一样的。
,否则会出Web page not available错误。
- WebView
wv = (WebView)findViewById(R.id.webview) ; -
- String
content = getUnicodeContent() ; -
- wv.getSettings().setDefaultTextEncodingNa
me(“UTF -8”) ; -
- wv.loadData(content,
“text/html”, “UTF-8”) ;
-
webview.setWebChromeClient(new MyWebChromeClient()); -
-
webview.setWebViewClient(new WebViewClient() -
{ -
@Override -
public boolean shouldOverrideUrlLoading (WebView view, String url) { -
// TODO Auto-generated method stub - //
return super.shouldOverrideUrlLoading (view, url); -
view.loadUrl(url); -
return true; -
} -
@Override -
public void onPageStarted(WebView view, String url, Bitmap favicon) { -
// TODO Auto-generated method stub -
super.onPageStarted(view, url, favicon); -
mProgressDialog.show(); -
} -
@Override -
public void onPageFinished(WebView view, String url) { -
// TODO Auto-generated method stub -
super.onPageFinished(view, url); -
mProgressDialog.hide(); -
} -
-
});
- private
class MyWebChromeClient extends WebChromeClient -
{ -
@Override -
public void onReceivedTitle(WebView view, String title) { -
// TODO Auto-generated method stub -
super.onReceivedTitle(view, title); -
textview.setText(title); -
} -
}
- public
class JavaScriptInterfaceDemo - {
-
-
public void getResposeCode(final String msg) -
{ -
mHandler.post(new Runnable() -
{ -
-
@Override -
public void run() { -
// TODO Auto-generated method stub -
} -
-
-
-
} - }
调用的地方
- webview.addJavascriptInterface(new
JavaScriptInterfaceDemo( this ), "JSInterfaceDemo");
本来以为要设置m_webview.getSettings().setPluginsEnabled(true);但后来发现去掉后也不影响效果。上面主要的是setWebChromeClient这个,要设置一个WebChromeClient对象给webview,WebChromeClient对象这样创建:
private WebChromeClient m_chromeClient = new WebChromeClient(){
};
以上是Android 4.0.3中实现的,在Android2.2,2.3这些版本没有试过,未必起作用
- private
class MyWebViewDownLoadListene r implements DownloadListener { -
-
@Override -
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, -
long contentLength) { -
Uri uri = Uri.parse(url); -
Intent intent = new Intent(Intent.ACTION_VIEW, uri); -
startActivity(intent); -
} -
-
}
转自新浪博客