关于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();
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);
}
});