runtoad
runtoad
  • 发布:2019-12-31 19:11
  • 更新:2020-02-28 02:42
  • 阅读:2435

uniapp怎么预置sqllite

分类:HBuilderX

按照官方说法:
必须为本地地址,支持以下类型路径: 5+ API路径(RelativeURL) - 以"_"开头的相对路径,如"_doc/a.db"(推荐使用"_doc/x.db"目录保存); 相对路径 - 相对于当前页面的host位置,如"a.db"(不推荐使用,相对路径无法写入数据,只能读取数据); 绝对路径 - 系统绝对路径,如Android平台"/sdcard/a.db",此类路径通常通过其它5+ API获取的(不推荐使用,无法跨平台); 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。 注意:写入数据需符合系统沙盒权限机制,应用资源目录(_www)目录通常不允许写操作,只能读取。

建议放到_doc/下,想把已经创建好的sqllite文件放进去怎么放?

2019-12-31 19:11 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

如果是只读,uni-app项目可放到应用的static目录中。
如果要写,从应用目录拷贝到_doc目录中(先判断文件是否存在,不存在时拷贝)

7***@qq.com

7***@qq.com - 第五禁区

您好!我想问下这个问题您解决了嘛?

  • runtoad (作者)

    已经解决了,就是上边的思路,从应用目录拷贝到_doc目录中(先判断文件是否存在,不存在时拷贝)

    2020-02-28 02:29

  • 7***@qq.com

    回复 runtoad: 谢谢大佬

    2020-02-28 16:47

runtoad

runtoad (作者)

我是这样处理的,不太严谨,移动失败没有做处理,你自己可以根据自己的需求调整,记得测试的时候,app要彻底删除重新安装,再测试,要不然sqllite可能自动创建了数据库,导致移动失败

plus.io.requestFileSystem( plus.io.PRIVATE_DOC, function(fs){    
                fs.root.getFile('mydata.db', {create:false}, function(fileEntry){    
                },function(e){  
                    plus.io.resolveLocalFileSystemURL('_www/static/mydata.db',function(entry){  
                            plus.io.resolveLocalFileSystemURL('_doc/',function(docEntry){  
                                entry.copyTo(docEntry,'mydata.db',function(){  
                                });  

                            });  

                    });  
                });    
            }); 
  • 2***@qq.com

    您好 我想问一下 刚开始拷贝成功了 后面卸载之后 怎么都不拷贝了 请问是怎么回事 谢谢啦

    2021-05-16 14:18

该问题目前已经被锁定, 无法添加新回复