首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

关于webview的两个小疑点

2013-03-14 
关于webview的两个小问题问题一:我在webview中load一张存于服务器端的html页面,如果我插入一张图片,想利用

关于webview的两个小问题

问题一:
我在webview中load一张存于服务器端的html页面,如果我插入一张图片,想利用apk包内图片,我按以前的思路,使用file的URL地址符: file:///android_asset/images/xxxxx.jpg ,但是结果是在手机上此图无法显示。请问形如图片的插入该如何解决?


问题二:
新建一个webview对象,并且载入网页……

是否有方法判断当前载入页面的url?我想利用keyCode == KeyEvent.KEYCODE_BACK 和 如果是默认页的话,按返回键推出程序,谢谢!
[解决办法]
1、URL的地址错了,webview不能直接获取你apk资源中的文件,你可能需要将资源图片释放到一个临时目录,然后URL去加载释放后的文件。

File file = new File("/sdcard/1.jpg");  // 将文件保存到SD卡下的1.jpg
   InputStream is = context.getResources().openRawResource(
R.raw.image1);
FileOutputStream fs = new FileOutputStream(file);
while (is.available() > 0) {
byte[] b = new byte[is.available()];
is.read(b);
fs.write(b);
}
fs.close();

然后Url地址符设置为:file:////sdcard/1.jpg

2、webview有一个setWebViewClient的方法,可以设置WebViewClient。WebViewClient有3个重载的方法,其中有一个onPageFinished,此方法会在每次webView完全加载一个网页后调用,会传递过来一个参数url,就是所加载网页的地址。
webView.setWebViewClient(new WebViewClient() {

@Override
public boolean shouldOverrideUrlLoading(WebView view,
String url) {

return super.shouldOverrideUrlLoading(view,url);
}

@Override
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error) {

handler.proceed();
}

@Override
public void onPageStarted(WebView view, String url,
Bitmap favicon) {

// 这个url是页面加载的网页的url,也可以用这个
super.onPageStarted(view, url, favicon);
}

@Override
public void onPageFinished(WebView view, String url) {

// 这个url就是你所需要的
super.onPageFinished(view, url);
}

@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {

super.onReceivedError(view, errorCode, description,
failingUrl);
}

});

热点排行