android websql 报错的问题 dom exception 18
程序员文章站
2022-04-09 07:51:04
...
我是复制了他的博客:http://blog.sina.com.cn/s/blog_c318af0b0102v8oa.html
如题,这个问题困扰了我一段时间。当时真的不知道哪里有问题,一直以为是跟ajax跨域差不多的问题,然后就一直在找js的问题,开始以dom exception 18为关键字百度,但是我看了很多网上的文章基本上都是说什么1、把页面放到服务器上;2、数据库设置大小问题;可是我的页面本来就在服务器上,而且大小也没有超过官方给的5*1024*1024。后来我试着用系统自带的浏览器去打开含有web sql database的网页结果完全没问题。当时我就把问题的矛头指向了android webveiw的配置。可是我百度了很多文章设置基本上都千篇一律,而且我也设置了如下几项:
WebSettings settings = webView.getSettings(); settings.setDatabaseEnabled(true); String dbPath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); settings.setDatabasePath(dbPath);
我看了一下webSettings里边除了这几项没有其他关于database的设置。但是一直还是不行,最后发现webview当中少了一些配置。
webView.setWebChromeClient(new WebChromeClient(){ @Override public void onExceededDatabaseQuota(String url,String databaseIdentifier, long quota,long estimatedDatabaseSize, long totalQuota,QuotaUpdater quotaUpdater) { // TODO Auto-generated method stub quotaUpdater.updateQuota(5*1024*1024); }
好吧,就是少了个上边这个配置,所以web sql database 一直报dom exception 18。经过这次的问题我发现搜索问题的关键词真的很重要,如果关键词到位的话就能很快解决问题。