电商网站设计模板,电子商务网站建设与维护实训题库,html5移动网站开发流程,江门58同城网最近在集成sqlite到uniapp的过程中#xff0c;因为要将sqlite数据库预加载#xff0c;所以需要使用HTML5的plus.io模块。使用过程中遇到了许多问题#xff0c;比如文件路径总是解析不到等。尤其是应用私有文档目录’_doc’。
根据官方文档#xff1a;
为了安全管理应用的…最近在集成sqlite到uniapp的过程中因为要将sqlite数据库预加载所以需要使用HTML5的plus.io模块。使用过程中遇到了许多问题比如文件路径总是解析不到等。尤其是应用私有文档目录’_doc’。
根据官方文档
为了安全管理应用的资源目录规范对文件系统的操作5 API在系统应用目录的基础设计了应用沙盒目录 分为私有目录和公共目录两种类型私有目录仅应用自身可以访问公共目录在多应用环境时如小程序SDK所有应用都可访问。应用私有资源目录对应常量plus.io.PRIVATE_WWW仅应用自身可读
应用私有文档目录对应常量plus.io.PRIVATE_DOC仅应用自身可读写
应用公共文档目录对应常量plus.io.PUBLIC_DOCUMENTS多应用时都可读写常用于保存应用间共享文件
应用公共下载目录对应常量plus.io.PUBLIC_DOWNLOADS多应用时都可读写常用于保存下载文件plus.io.PRIVATE_WWW表示’_www’目录实际值为1plus.io.PRIVATE_DOC表示__doc目录实际值为2
因此不能把他们简单等同要看方法需要的参数类型是什么。如果需要的参数类型是number就使用常量如果类型是string则使用具体url路径。
别的不说了先官方文档还是得仔细读读虽然存在5%的小错误但是还是可以提供帮助。
上代码
我的需求是将数据库文件fit_path_app.db从_www拷贝到__doc目录下。该文件在项目中位于/static/database目录下我是直接把整个目录拷贝到doc/db/目录下。
关于doc为什么直接使用字符串而不是本地文件路径因为我发现如果在初始化时使用本地文件路径会解析地址失败但是直接使用字符串则不会。原因不详。
最终使用下面的方法目前在uniapp真机运行和使用mumu模拟器的情况下测试拷贝成功了实体机测试晚点再看看应该也问题不大。
scriptexport default {onLaunch: function() {const sourcePath plus.io.convertLocalFileSystemURL(_www/static/database);// const targetRootPath plus.io.convertLocalFileSystemURL(_doc/)const targetRootPath _doc/// const targetFilePath plus.io.convertLocalFileSystemURL(_doc/fit_path_app.db)const targetFilePath db/const paths {source: sourcePath,targetRoot: targetRootPath,targetFile: targetFilePath}console.log(源和目标路径,JSON.stringify(paths));plus.io.resolveLocalFileSystemURL(sourcePath,function(srcEntry) {plus.io.resolveLocalFileSystemURL(targetRootPath,function(targetEntry) {// 拷贝srcEntry.copyTo(targetEntry,targetFilePath,function(entry) {console.log(拷贝成功:,entry.fullPath);},function(e) {conso.error(拷贝失败,JSON.stringify(e));})}, function(e){console.error(解析目标地址失败,JSON.stringify(e))})}, function(e) {console.error(解析源地址失败,JSON.stringify(e))})console.log(Database initialized successfully.);console.log(App Launch)},onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)}}
/script