android WebView HTML5访问数据库问题

android WebView HTML5访问数据库问题,第1张

概述我在一个应用程序工作 嵌入WebView并显示 HTML5页面. 当在android chrome Browser中打开html页面时,数据库创建正常. 但是当我运行这个应用程序时,数据库无法创建. 看来html页面无法在WebView上创建数据库. 有谁知道为什么? 这是我的活动代码: public class efan_NewsReader extends Activity {/** Cal 我在一个应用程序工作
嵌入WebVIEw并显示 HTML5页面.

当在androID Chrome browser中打开HTML页面时,数据库创建正常.

但是当我运行这个应用程序时,数据库无法创建.
看来HTML页面无法在WebVIEw上创建数据库.

有谁知道为什么?

这是我的活动代码:

public class efan_NewsReader extends Activity {/** Called when the activity is first created. */@OverrIDepublic 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");}}

这是我的HTML5页面源代码:

<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);

在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);    }}

应该没问题;)

总结

以上是内存溢出为你收集整理的android WebView HTML5访问数据库问题全部内容,希望文章能够帮你解决android WebView HTML5访问数据库问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1123051.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存