转: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学习资料和源码,库”显然是为了帮助开发者深入理解和掌握HTML5的相关技术。下面将详细介绍HTML5的主要特性、应用领域以及学习资源。 1. **主要特性** - **语义化标签**:HTML5引入了新的...
HTML5PHP是一个专门为PHP开发者设计的库,它专注于HTML5文档的解析和序列化。这个库使得在PHP环境中处理HTML5文档变得更加方便和高效。HTML5PHP的核心功能是提供了一个强大的接口,允许开发者以编程方式操作HTML5...
基于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**...
5. **易于集成**:由于Python的灵活性,xlsx2html库可以轻松地与其他Python库(如pandas、openpyxl等)结合,用于更复杂的数据操作和分析。 6. **命令行工具**:除了API接口外,xlsx2html-0.4.0还提供了命令行工具...
标题中的“完整的漂亮手机模板UI库html5”指的是一个专门设计用于移动设备的用户界面(UI)库,它基于HTML5...无论是在创建新项目还是优化现有应用时,这样的UI库都能大大节省时间和资源,同时保证设计的质量和一致性。
3. HTML5库:虽然这个案例没有具体提及使用哪个HTML5库,但通常在开发此类复杂动画时,开发者可能会使用如GreenSock Animation Platform (GSAP)、Snap.svg或者D3.js等库。这些库提供了一套强大的工具,简化了动画的...
HTML5是一种先进的网页开发技术,它为Web开发者提供了丰富的功能和强大的工具,使得创建交互式、动态和多媒体体验成为可能。在这个"html5基于cesium.js库的3d立体地球仪模型动画代码.zip"压缩包中,我们找到了利用...
**基于HTML5的Chart.js图表JS库** Chart.js是一个轻量级且易于使用的JavaScript库,专为在Web页面上创建动态、美观的数据可视化而设计。它利用HTML5的Canvas元素来绘制各种图表,如条形图、饼图、线形图、雷达图等...
在这个“HTML5+Canvas+作图函数库”中,我们将探讨Canvas的基本用法以及一些常用的Canvas绘图函数库。 首先,Canvas API提供了基本的绘图命令,如`fillRect()`用于填充矩形,`beginPath()`和`stroke()`用于描边路径...
5. **性能优化**:二维库往往具有优化机制,如批处理渲染,能有效减少重绘次数,提高游戏性能。 以HTML5的Pixi.js为例,它是一个轻量级且强大的2D渲染引擎,支持WebGL和canvas两种渲染方式。在连连看游戏中,开发者...
4. **兼容性**:尽管这款插件主要依赖于HTML5特性,但它通常会进行兼容性处理,以确保在不支持HTML5 Canvas的老版本浏览器中也能提供一定的功能或降级方案,这样可以扩大目标用户的范围。 5. **应用场景**:粒子...
Canvas 提供了一种在浏览器上进行动态图形绘制的能力,使得开发者无需依赖插件就能创建丰富的交互式图形应用。在电力和电信行业中,拓扑图是一种常见的方式,用于表示设备、网络和系统的连接关系,有助于理解和分析...
HTML5过场动画切换是网页设计中的一种创新技术,它利用HTML5的现代特性来创建动态、引人入胜的过渡效果,为用户提供更丰富的视觉体验。这些动画不仅仅是静态页面间的简单跳转,而是通过精心设计的动画效果,使得用户...
4. **现代Web技术集成**:除了基本的HTML5结构,生成器还可能包含JavaScript库(如jQuery)和框架(如Bootstrap),以及Web组件(Web Components)、WebSocket、离线存储(Service Worker)等HTML5新特性。...
3. **帧处理**:WebSocket协议中的数据被封装在帧中,库应能解码和编码这些帧。 4. **错误处理**:捕获和处理握手失败、网络中断等异常情况。 5. **安全性支持**:可能包含对WSS(WebSocket over SSL/TLS)的支持,...
1. **安装**:通常,你需要将库文件复制到系统或项目的特定目录下,然后配置编译环境,使编译器能找到库的头文件和链接库。 2. **链接库**:在C++项目的编译选项中,添加对HTML Tidy库的链接指示。 3. **包含头文件*...