WebView 学习相关笔记
打算做个简单的浏览器,先从WebView开始学期。从某社区网站上搜索,抄下了一些笔记。用代码的方式记了下来,如下。
// WebView 学习笔记
// 基本示例
// 来自
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=11763
class WebViewNote extends Activity{
private WebView webView;
private Handler handler = new Handler();
public void onCreate(Bundle bundle){
//...
//webView = (WebView) findViewById(...)
// 载入页面
webView.loadUrl("file:///android_asset/demo.html");
// 从asset目录加载页面的语法结构如上
// 载入页面的另一种方法
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=11241
// webView.postUrl(url,postData);
// 启用Javascript功能
webView.getSettings().setJavaScriptEnabled(true);
// 当前webView打开链接
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
return true;
}
// WebViewClient中其他可重载的方法
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=1543
public void onPageFinished(WebView view,String url){
super.onPageFinished(view,url);
}
public void onPageStarted(WebView view,String url,Bitmap favicon){
super.onPageStarted(view,url,favicon);
}
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=1569
public void onReceiveError(WebView view,int errorCode,
String description,String failingUrl){
// ...
}
});
// 有关进度的设置,标题栏显示进度
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=1569
getWindow().requestFeture(Window.FEATURE_RROGRESS);
Activity activity = this;
webView.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(WebView view,int progress){
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 100);
}
});
// 按Back键,后退而不退出程序
// 见onKeyDown
// 可以后退
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=1475
// webView.canGoBack();
// 与Js交互
webView.addJavascriptInterface(new Object(){
public void clickOnAndroid(){
handler.post(new Runnable(){
public void run(){
webView.loadUrl("javasript:wave()");
}
},"demo");
}
});
// 对应Html代码
/*
<html><script>function wave()
{document.getElementById("droid").src="wave.png";}</script>
<a onClick="window.demo.clickOnAndroid()">
<img id="droid" src="normal.png"/></a></html>
*/
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
// 另一个非常有参考意义的网址
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=14219
// 对WebChromeClient有较多的举例,非常好!
//http://www.d-android.com/developer/forum.php?mod=viewthread&tid=15047
// webView 和 js 交互的简单而清晰的说明
// http://www.d-android.com/developer/forum.php?mod=viewthread&tid=23687
}
欢迎转载,同时请注明出处

浙公网安备 33010602011771号