- 浏览: 800748 次
- 性别:
- 来自: 广州
最新评论
-
mixture:
语句int num1, num2;的频度为1;语句i=0;的频 ...
算法时间复杂度的计算 [整理] -
zxjlwt:
学习了。http://surenpi.com
[问题解决]Error: ShouldNotReachHere() [整理] -
Animal:
谢谢 楼主 好东西
算法时间复杂度的计算 [整理] -
univasity:
gaidandan 写道缓存失败,,模拟器上可以缓存,同样代码 ...
[开发总结]WebView使用中遇到的一些问题&解决 -
blucelee2:
那么麻烦干吗,而且这种方法会导致,当拉太小的时候样式会丢掉,整 ...
[SWT]SashForm中固定单侧大小(&实现面板隐藏)
<!-- 最近接触WebView比较多,总结一下使用过程中遇到的一些问题和解决办法 -->
1.
WebView无法缓存(Cache)
如果页面的Header包含了以下字段就会导致无法缓存(具体可参考CacheManger.parseHeaders()方法):
Cache-Control:
no-store, no-cache
Pragma:
no-cache
需要由服务器更改页面属性解决。
2. WebView.getFavIcon()无法获取到页面图标
必须先执行以下操作(打开图标数据库):
WebIconDatabase.
getInstance
().open(getDir(
"icons"
,
MODE_PRIVATE
).getPath());
3. WebViewClient.shouldOverLoadingUrl()方法有时不会被回调
我是在访问百度手机版切换为传统版时遇到的,页面
最下面的<传统版>切换:
<a href="http://video.baidu.com/index.html?fr=video" target="_blank" onmousedown="vdStatic(event, this, 2043)">传统版</a>
网上搜集到讨论该问题的一些链接:
目前还没法办解决,对于想截获地址并禁止其访问的,可以在WebViewClient.onPageStart()里处理:
class
MyWebViewClient
extends
WebViewClient {
/**
* 网页开始加载
*/
public
void
onPageStarted(WebView view, String url, Bitmap favicon){
if
(
IsIgnoreWebsite
(url)){
view.stopLoading();
// 提示网页被屏蔽?
return
;
}
}
}
4.
垂直滚动条总是显示白色轨迹底图(无法消掉)
在xml中给WebView设置一下属性发觉不起一点作用:
android:fadeScrollbars
=
"true"
android:scrollbarStyle
=
"outsideOverlay"
android:scrollbarAlwaysDrawVerticalTrack
=
"false"
必须在代码中对WebView进行设置才能奏效:
webview
.setScrollbarFadingEnabled(
true
);
webview
.setScrollBarStyle(View.
SCROLLBARS_INSIDE_OVERLAY
);
5.
加载报错(无法创建数据库导致空指针)
这不是必然的。我的情况是,我有两个应用使用到WebView,代码都是一样的,但是其中一个死活报错
。
什么都不做,仅仅构造了WebView对象:
sqlite returned: error code = 14, msg = cannot open file at source line 25467
sqlite3_open_v2("/data/data/com.demo.webview/databases/webview.db", &handle, 6, NULL) failed
sqlite returned: error code = 14, msg = cannot open file at source line 25467
sqlite3_open_v2("/data/data/com. demo .webview/databases/webviewCache.db", &handle, 6, NULL) failed
sqlite3_open_v2("/data/data/com.demo.webview/databases/webview.db", &handle, 6, NULL) failed
sqlite returned: error code = 14, msg = cannot open file at source line 25467
sqlite3_open_v2("/data/data/com. demo .webview/databases/webviewCache.db", &handle, 6, NULL) failed
使用load加载网页,加载完毕时报错:
FATAL EXCEPTION: WebViewWorkerThread
java.lang.NullPointerException
at android.webkit.WebViewDatabase.getCacheTotalSize(WebViewDatabase.java:734)
at android.webkit.CacheManager.trimCacheIfNeeded(CacheManager.java:548)
at android.webkit.WebViewWorker.handleMessage(WebViewWorker.java:190)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:60)
FATAL EXCEPTION: WebViewWorkerThread
java.lang.NullPointerException
at android.webkit.WebViewDatabase.getCacheTotalSize(WebViewDatabase.java:734)
at android.webkit.CacheManager.trimCacheIfNeeded(CacheManager.java:548)
at android.webkit.WebViewWorker.handleMessage(WebViewWorker.java:190)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:60)
初步分析:
这是因为底层库打开数据库时失败,导致进一步调用该数据库对象进行操作,抛出空指针错误。
目前已尝试的解决方式:
1.捕获抛出的异常 —— 无法捕获到。
*在Android的Bug反馈中也找到了该问题:
但官方暂时未有进一步回答。
评论
7 楼
univasity
2015-03-05
gaidandan 写道
缓存失败,,模拟器上可以缓存,同样代码在手机上没有办法缓存,什么原因。
换不同的手机试试?和系统可能有关系,毕竟android开源的
6 楼
gaidandan
2014-10-15
缓存失败,,模拟器上可以缓存,同样代码在手机上没有办法缓存,什么原因。
5 楼
yanyuetian
2014-09-15
这有些我开发过程遇到的最新问题及优化方案http://www.pedant.cn/2014/09/10/webview-optimize-points/#e ,欢迎一起探讨交流
4 楼
pandu001
2013-06-23
楼主 最后一个问题找到原因了么?我遇到了同样的问题
3 楼
Will.Du
2012-07-11
挺不错的,都是些经常遇到让人头疼的问题。
2 楼
sungod
2011-06-18
谢谢 分享,写的不错
1 楼
meizanchen
2011-06-17
还没接触过webview 不过这些问题,应该是需要关注的,以后用到可以避免一些麻烦了 感谢楼主
发表评论
-
[转]Android Studio的logcat窗口被拖出来后如何还原?
2016-01-07 10:08 3152无意把Memory Monitor的窗口拖出来了,然后发觉 ... -
[问题解决]个推SDK使用侧记 -- 多个账号注册导致的问题
2013-12-28 14:40 2157这是我们项目最近用到的东西,用来实现消息推送。 (还不了 ... -
[问题解决] 个推(igetui)SDK使用侧记 -- 多个账号注册同一应用导致的问题
2013-12-28 14:33 0这是我们项目最近用到的东西,用来实现消息推送。 (还不了解 ... -
[问题解决]同时显示多个Notification时PendingIntent的Intent被覆盖?
2012-02-02 16:11 16942情况是这样的,使用NotificationManager触发多 ... -
迟来的试用:App Inventor,不用编码也能做出apk
2011-12-22 22:29 2729最近看到App Inventor即将关闭的消息(2011.12 ... -
Maven In Android
2011-08-31 17:32 3430Maven 一个项目管理工具,类似于Ant。相比Ant, ... -
[问题解决]WebView显示的网页在大分辨率屏下被放大 - 密度惹的祸
2011-08-31 17:16 9079例如适合800px宽度的页面,如果通过WebView在 ... -
[工作积累].9图片,不要忘了设定内容填充区域
2011-08-31 17:13 1736<? xml version ... -
Android调试工具 —— MAT [整理]
2011-06-26 23:06 30499简介: Eclipse提供的一个内存分析工具。它是一个功 ... -
Android调试工具 —— TraceView [整理]
2011-06-26 22:58 5088简介: 来自API文档中的一段介绍: Tracevi ... -
[Android API 学习]WebView基本使用
2011-06-15 10:54 8459WebView是android.webkit包下的一 ... -
[问题解决]Error: ShouldNotReachHere() [整理]
2011-06-01 13:03 10794在Android项目中创建一个 ... -
[小工具]apk反编译工具整合(修复)
2011-05-05 00:30 5273//----------------------------- ... -
[问题解决]java.lang.SecurityException: Permission Denial requires null[整理]
2011-04-12 13:10 24029原因分析: 在SDK版本eclair中(Level 5- ... -
[基础]Android SDK版本与API Level对应列表[收集]
2011-04-12 12:32 4745Platform Version AP ... -
Android apk安装后自动添加桌面图标 和 自启动的尝试
2011-04-02 01:47 15203前一个问题是论坛里的一位朋友提出来的:“如何在应用安装到手机里 ... -
View.setOnKeyListener无法捕获事件?[收集]
2011-03-24 23:32 12616最近在使用View中的setKeyListener时碰到了这问 ... -
Android 获取指向Resource的URI[转]
2011-03-23 21:35 7547>> Uri真强大,还能这么搞...收藏了,回头要 ... -
Android模拟器网络连接问题解决[转]
2011-03-22 13:35 7881原文链接: http://hi.baidu.com/bing ... -
[Android API学习]Data Storage胡乱翻译(2)
2011-03-16 23:47 2027使用外部存储器 (Using th ...
相关推荐
android开发中WebView的使用 WebView是个好东西,作用相当于一个迷你的浏览器,采用Webkit内核,因此完美支持html,javascript,css等。有时候,我们完全可以把UI甚至数据处理都交给WebView,配合PHP等服务端程序,...
android--开发中WebView的使用.docx
android开发中WebView的使用.pdf
webview开发
android--开发中WebView的使用.pdf
安卓开发-webview重载使用&自定义网址.zip
第一次尝试用Android Studio 开发的WebView 框架源码;仅供大家学习参考。
android使用webview上传文件兼容问题解决,兼容5.0以上系统
DelphiXe10.4.1 开始支持了使用 Edge 使用新增加的TEdgeBrowser开发扩展WebView2Loader.dll 32位系统 RAD Studio 10.4.1新的基于Chromium的Microsoft Edge浏览器的TEdgeBrowser控件扩展库文件
在android的webview中实现websocket通信
Android下WebView加载flash闪白屏问题解决方案源码
webview重载使用&自定义网址
本文主要针对WebView和OC在开发中交互出现的一些问题进行概括和实践
Android webview 内存泄露的解决方法 最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递...
解决在webview中input标签type="file"不能使用的问题
原生登录cookie保持提供webview使用
在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等。WebView功能强大,应用广泛,但它是天使与恶魔的合体,一方面它增强了APP的上网体验,让APP...
Android中webview使用js与java交互