转:http://stackoverflow.com/questions/6676871/android-webview-html5-access-database-problem
问题:
i am work at an app which Embed an WebView and display a HTML5 page .
when open the html page in android chrome Browser.the database was create normal.
but when i run this app , the database can not create . it seem that html page can not create the database on WebView.
anybody know why?
here is my Activity code:
public class efan_NewsReader extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView myWebView=(WebView)findViewById(R.id.my_webview);
myWebView.setWebViewClient(new WebViewClient());
WebSettings settings = myWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
settings.setAppCacheEnabled(false);
myWebView.loadUrl("http://10.10.35.47:8080/html5test/test.htm");
}}
here is my HTML5 page source code:
<html manifest="mymanifest.manifest">
<head>
<meta http-equiv="Content-Type" content="text/html; content="no-cache" charset=utf-8" />
<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
<script>
$(document).ready(function(){
databaseTest();
});
function databaseTest(){
//open database
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS testHtml (id unique, contentText)');
tx.executeSql('INSERT INTO testHtml (contentText) VALUES ("insert data test!")');
});
db.transaction(function(tx){
tx.executeSql('SELECT * FROM testHtml',[],function(tx,result){
var len=result.rows.length;
var msg = "<p>Found rows: " + len + "</p>";
$("#testinfo").append(msg);
},null);
});
}
</script>
</head>
<body>
<div>here is test info:</div>
<div id="testinfo"></div>
</body>
解答:
settings.setDatabaseEnabled(true);
String dbPath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
settings.setDatabasePath(dbPath);
And in WebChromeClient :
myWebView.setWebChromeClient(new WebChromeClient()
{
@Override
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater)
{
quotaUpdater.updateQuota(estimatedSize * 2);
}
}
分享到:
相关推荐
HTML5 Canvas是HTML5规范中的一个关键特性,它允许开发者通过JavaScript在网页上进行动态图形绘制,从而创建出丰富的交互式图表和其他视觉元素。Canvas提供了一个二维绘图上下文,可以执行诸如绘制线条、形状、图像...
HTML5PHP是一个专门为PHP开发者设计的库,它专注于HTML5文档的解析和序列化。这个库使得在PHP环境中处理HTML5文档变得更加方便和高效。HTML5PHP的核心功能是提供了一个强大的接口,允许开发者以编程方式操作HTML5...
标题中的"Python库 | rst2html5-tools-0.2.1.tar.gz"指的是一个用于Python的库,名为`rst2html5-tools`,版本号为0.2.1,其源代码被压缩在`.tar.gz`文件中。这种类型的文件通常包含软件的源代码、文档和其他相关资源...
HTML5是一种先进的网页开发技术,它为Web开发者提供了丰富的功能和强大的工具,使得创建交互式、动态和多媒体体验成为可能。在这个"html5基于cesium.js库的3d立体地球仪模型动画代码.zip"压缩包中,我们找到了利用...
基于HTML5的JS图片图像处理库,如AlloyPhoto,提供了丰富的功能,使开发者能够创建具有专业级图像编辑功能的Web应用。 首先,这类库通常具有简洁、易用的API。这意味着开发人员可以快速地学习并应用这些库来实现...
1. **解析HTML**:`html5lib`库可以解析HTML5文档,即使这些文档不完全符合规范,也能尝试修复错误,生成一个有效的DOM树。 2. **生成HTML**:除了解析,`html5lib`还支持生成HTML5文档。你可以创建一个DOM树,然后...
这个压缩包"html5Qrcode.zip"包含了实现这一功能所需的核心JavaScript库,如`qrcode.js`、`qrcode.lib.min.js`、`quagga.min.js`和`zepto.js`。下面将详细阐述这些文件及其在二维码应用中的作用。 1. **qrcode.js**...
在本示例中,"html实现js文件md5"指的是使用HTML页面结合JavaScript库来计算文件的MD5哈希值。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定长度的摘要,通常用于...
标题中的“完整的漂亮手机模板UI库html5”指的是一个专门设计用于移动设备的用户界面(UI)库,它基于HTML5...无论是在创建新项目还是优化现有应用时,这样的UI库都能大大节省时间和资源,同时保证设计的质量和一致性。
3. HTML5库:虽然这个案例没有具体提及使用哪个HTML5库,但通常在开发此类复杂动画时,开发者可能会使用如GreenSock Animation Platform (GSAP)、Snap.svg或者D3.js等库。这些库提供了一套强大的工具,简化了动画的...
**基于HTML5的Chart.js图表JS库** Chart.js是一个轻量级且易于使用的JavaScript库,专为在Web页面上创建动态、美观的数据可视化而设计。它利用HTML5的Canvas元素来绘制各种图表,如条形图、饼图、线形图、雷达图等...
5. **Building HTML5 Canvas Bar Graph**:此示例展示了如何使用HTML5 Canvas和JavaScript创建自定义的条形图,适用于需要展示分类数据的应用。 6. **HTML5 Graph Slider**:这是一个动态图形查看器,能够接收...
5. **性能优化**:二维库往往具有优化机制,如批处理渲染,能有效减少重绘次数,提高游戏性能。 以HTML5的Pixi.js为例,它是一个轻量级且强大的2D渲染引擎,支持WebGL和canvas两种渲染方式。在连连看游戏中,开发者...
4. **兼容性**:尽管这款插件主要依赖于HTML5特性,但它通常会进行兼容性处理,以确保在不支持HTML5 Canvas的老版本浏览器中也能提供一定的功能或降级方案,这样可以扩大目标用户的范围。 5. **应用场景**:粒子...
HTML5过场动画切换是网页设计中的一种创新技术,它利用HTML5的现代特性来创建动态、引人入胜的过渡效果,为用户提供更丰富的视觉体验。这些动画不仅仅是静态页面间的简单跳转,而是通过精心设计的动画效果,使得用户...
本文将深入探讨如何利用JavaScript库,如`jsQR`和`html5-qrcode`在H5页面中实现扫码功能,以及与之相关的`uni-app`集成。 首先,`jsQR`是一个纯JavaScript编写的二维码解码库,它能在浏览器环境中解析出二维码的...
3. **帧处理**:WebSocket协议中的数据被封装在帧中,库应能解码和编码这些帧。 4. **错误处理**:捕获和处理握手失败、网络中断等异常情况。 5. **安全性支持**:可能包含对WSS(WebSocket over SSL/TLS)的支持,...
Canvas 提供了一种在浏览器上进行动态图形绘制的能力,使得开发者无需依赖插件就能创建丰富的交互式图形应用。在电力和电信行业中,拓扑图是一种常见的方式,用于表示设备、网络和系统的连接关系,有助于理解和分析...
1. **安装**:通常,你需要将库文件复制到系统或项目的特定目录下,然后配置编译环境,使编译器能找到库的头文件和链接库。 2. **链接库**:在C++项目的编译选项中,添加对HTML Tidy库的链接指示。 3. **包含头文件*...
在实际开发中,将这样的库引入项目,可以通过简单的引用,确保在不支持HTML5的浏览器中也能播放视频,提高了网站的可达性和用户体验。 `video`标签是HTML5的核心元素之一,用于在网页上插入和控制视频内容。它允许...