attempt to write a readonly database hbuilder 5+api 引入sqlite的.db文件 只能读不能写的解决办法
问题简介
database放入建好表结构的local.db后,在pages的HTML中可以通过…/database/local.db进行读取,但无法进行update,insert等写操作,也就是此目录下的文件只能读不能写。
解决方法
将database中的local.db复制到可读写的文件夹即可
通过https://www.html5plus.org/doc/zh_cn/io.html可知,downloads文件夹是可行的
操作步骤
首先修改runmode为liberate,不然后面的代码只有调试的时候生效,打包后无效
然后在合适的地方添加以下代码,判断文件是否存在,不存在就复制过去,复制到可以读写的目录plus.io.resolveLocalFileSystemURL需要嵌套使用,具体原因我也不清楚。
mui.plusReady(function(){
plus.io.resolveLocalFileSystemURL('_downloads/local.db',
res=>{
//文件存在
console.log('已存在')
},error=>{
plus.io.resolveLocalFileSystemURL('/database/local.db',res1=>{
plus.io.resolveLocalFileSystemURL('_downloads/',res2=>{
res1.copyTo(res2,'local.db',entry=>{
console.log('复制成功')
},e=>{
alert