DCloud_App_Array
DCloud_App_Array
  • 发布:2019-03-23 20:48
  • 更新:2023-12-20 16:47
  • 阅读:13821

SQLite云端打包配置说明

分类:HTML5+

HBuilderX 1.7.2及以上版本支持SQLite操作db文件。

概述

SQLite是一种嵌入式数据库,本质上就是一个数据库文件(.db)。是无服务器的、零配置的、事务性的简单轻量级SQL数据库引擎。
通常在移动设备上适合不需要高并发量的本地数据存储。

SQLite API使用

plus.sqlite已经封装好操作db数据库文件接口,按以下方法调用即可。
在uni-app中可使用条件编译直接调用5+ Push接口

打开数据库

使用前需调用plus.sqlite.openDatabase打开数据库,必须指定数据库文件路径(.db)和数据库名称。
数据库文件路径使用需注意以下问题:

应用资源目录中的文件只可读,在使用相对路径(如"./x.db")或5+API路径RelativeURL的应用资源目录(如"_www/x.db")时不能写入保存数据。通常可以将一些应用的初始数据作为资源内置到应用中,在业务逻辑中进行读取操作。
如果需要在应用的业务逻辑产生的数据保存,应该将数据库文件保存在可写目录中,推荐使用5+API路径的应用私有文档目录(如"_doc/x.db"),此目录中的文件是可读可写,并且应用热更新时不会影响此目录中的文件。
数据库文件路径只可读时,如果文件不存在打开数据库则会失败;数据库文件路径可读可写时,如果文件不存在则自动创建数据库文件。

注意:Android平台目前已知数据库文件不存在时不会自动创建(此问题会在HBuilderX1.8.1版本修复),临时解决方法是先创建不存在的文件,示例如下:

document.addEventListener('plusready', function(e){  
    // 确保_doc/test.db文件存在  
    plus.io.requestFileSystem( plus.io.PRIVATE_DOC, function(fs){  
        fs.root.getFile('test.db', {create:true}, function(fileEntry){  
            console.log('ensure test.db file!');  
        });  
    });  
}, false);  

// 打开数据库  
function openDB(){  
    outSet('打开数据库: ');  
    plus.sqlite.openDatabase({  
        name: 'first',  
        path: '_doc/test.db',  
        success: function(e){  
            console.log(JSON.stringify(e));  
        },  
        fail: function(e){  
            console.log(JSON.stringify(e));  
        }  
    });  
}

操作数据库

  • 执行SQL语句(plus.sqlite.executeSql),对数据进行增、删、改操作。数据库文件路径必须可读可写,否则会操作失败。
  • 执行事务(plus.sqlite.transaction),对数据库执行事务操作。数据库文件路径必须可读可写,否则会操作失败。
  • 执行查询SQL语句(plus.sqlite.selectSql),对数据库执行查询操作。数据库文件路径可读即可。

关闭数据库

数据库操作完成后,必须调用plus.sqlite.closeDatabase关闭,否则一直占用系统资源。推荐操作前打开数据库,完成操作后及时关闭数据库,避免引起占用系统资源而无法执行其它操作。

完整5+ API接口参考SQLite规范文档

云端打包配置

使用SQLite功能,提交云端打包时需在manifest.json中配置使用“SQLite(数据库)”。

  • HBuilderX1.8.0及以后版本通过可视化界面配置
    打开应用的manifest.json文件,选择“模块权限配置”项,勾选“SQLite数据库”,如下图所示:
    配置SQLite

  • HBuilderX1.7.2&1.7.3版本通过源码视图配置
    打开应用manifest.json文件,点击“源码视图”,在"permissions"节点下添加"SQLite"节点:

    //...  
    "permissions" : {  
        //...  
        "SQLite" : {}  
    },  
    //...

    uni-app应用在"app-plus"->"modules"节点下添加"SQLite"数据

4 关注 分享
2***@qq.com 弃医从文 剑心无间 7***@qq.com

要回复文章请先登录注册

6***@qq.com

6***@qq.com

我想问下,我的数据库文件一开始是没有的,通过接口去下载到文档推荐的_doc目录下面,在没有打包之前数据读取写入完全正常,但是在通过云打包之后,云打包也添加了sqlite模块,但是在打包完使用的时候还是没有执行操作数据库这是怎么回事
2019-06-12 15:20
07shou

07shou

想咨询下 现在sqlite离线打包报错,有没有官方的demo可以参考
2019-05-09 16:45
4***@qq.com

4***@qq.com

如果有2000条数据的时候 循环 插入数据库会很慢 使用事务的话是在插入前begin 在插完后commit 吗? 还是有其他的插入方法 能提高插入速度
2019-04-30 11:02
CLP

CLP

回复 s***@foxmail.com :
我们的sqlite模块 并没有混淆的代码,你可以和苹果申诉,文明白具体是什么导致的,你还可以仔细检查下你的代码,是否有隐藏功能,或其他的代码逻辑导致被拒。
2019-04-22 13:59
s***@foxmail.com

s***@foxmail.com

应用sqlite模块后,ios上架appstore被拒:
Guideline 2.3.1 - Performance


We discovered that your app contains obfuscated code, selector mangling, or features meant to subvert the App Review process by changing this app's concept after approval to the App Store.

提示使用了混淆的代码
2019-04-22 08:56
2***@qq.com

2***@qq.com

回复 DCloud_App_Array :
http://ask.dcloud.net.cn/question/67266
早就发过了咨询,没有人回复
2019-04-15 17:21
DCloud_App_Array

DCloud_App_Array (作者)

回复 2***@qq.com :
请单独发起问题咨询,详细描述问题细节。
2019-04-13 16:02
2***@qq.com

2***@qq.com

回复 DCloud_App_Array :
我现在用的1.8.2.20190401。在uniapp里面的pages.json里面配置的搜索页代码如下。打包生成资源后放进安卓项目里面集成,搜索功能不起作用
{
"path": "pages/index/search",
"style": {
"navigationBarTitleText": "搜索悬赏主ID",
"app-plus": {
"titleNView": {
"titleColor": "#fff",
"titleText":"",
"backgroundColor": "#6599ff",
"buttons": [{
"fontSrc": "/static/fonts/uni.ttf",
"text": "\ue466",
"width": "auto",
"fontSize": "28px",
"color": "#fff"
}],

"searchInput": {
"backgroundColor": "#fff",
"borderRadius": "6px",
"placeholder": "请输入悬赏主id",
"autoFocus": true,
"align": "left"
}
}
}
}
}
2019-04-12 14:41
DCloud_App_Array

DCloud_App_Array (作者)

回复 2***@qq.com :
两个版本应该是一样的。
2019-04-11 19:03
2***@qq.com

2***@qq.com

回复 DCloud_App_Array :
用1.8.2.20190330还是用1.8.2.20190401有影响吗
2019-04-11 16:52