uniapp app端开发---离线状态数据保存

项目背景

项目工作环境网络不好,或者涉及机密数据等,需要断网情况下的数据采集。当然我们可以通过localStorage来实现数据的本地存储,但这种方式,只能缓存少量切单一的数据。html5+ 有一个模块 sqlite,便可以实现我们的需求。

sqlite模块中的方法

plus.sqlite.openDatabase(options);

如果数据库存在则打开,不存在则创建。

  • options
    • name: ( String ) 必选 数据库名称
    • path: ( String ) 必选 数据库路径
    • ⚠️ 根据官方文档推荐来 使用 _doc/x.db,因为该目录下既可以读写,又是该应用私有目录。

    • success: ( SQLiteSuccessCallback ) 可选 打开数据库成功回调函数
    • fail: ( SQLiteFailCallback ) 可选 打开数据库失败回调函数
//example
function openDB() {
   
	plus.sqlite.openDatabase({
   
		name: 'test',
		path: '_doc/test.db',
		success: function() {
   
			console.log('数据库打开成功')
		},
		fail: function(e) {
   
			console.error(e)
			// {code: '错误代码', message: '错误信息'}
		}
	})
}

plus.sqlite.isOpenDatabase(options);

数据库已经打开则返回true,数据库没有打开则返回false。 ⚠️HBuilderX1.9.0及以上版本支持。

  • options
    • name: ( String ) 必选 数据库名称
    • path: ( String ) 必选 数据库路径
  • return
    • true:数据库打开成功;false:数据库打开失败
//example
function isOpenDB() {
   
	const res = plus
UniApp 开发 App 时,如果你想在离线状态下使用 Tesseract.js 这个 OCR (光学字符识别) 库,你需要做以下几步: 1. **下载 Tesseract.js 和依赖**:首先,在项目里安装 tesseract.js 的本地版本。由于 UniApp 没有原生支持 Node.js,你需要借助 HBuilderX 的 JSB 或者类似工具预编译 Tesseract.js。确保下载包含离线模式的 tesseract.min.js 文件。 ```sh // 使用 HBuilderX 的 JSB hbuilderx jsb install tesseractjs ``` 2. **处理离线文件**:将预编译后的 tesseract.min.js 和语言数据文件(比如 `.ttf` 字体和 `.data` 数据包)放在 App 的 `assets` 目录下,并确保它们能被打包到资源文件夹中。对于多语言支持,每个语言的数据包都需要独立保存。 3. **编写代码访问本地文件**:在你的 Vue 或小程序组件中,创建一个函数来读取本地的 Tesseract.js 文件并初始化它。例如: ```javascript const tesseract = { init() { const imgPath = 'file:///' +uni.getStorageSync('tesseract.min.js'); // 替换为你实际的路径 uni.createSelectorQuery().select(imgPath).async(res => { this.tesseract = await res.promise; // 初始化 Tesseract.js 并指定离线语言包路径 this.tesseract.load(tesseractDataPath); }); }, // ...其他识别方法 }; ``` 4. **离线使用**:确保在使用 Tesseract.js 功能之前,先调用 `init()` 函数加载必要的文件,然后就可以在离线环境下进行文字识别了。 5. **错误处理**:考虑到网络环境切换的情况,需要添加适当的错误处理,如检查文件是否已成功加载,以及在在线时是否可以访问远程资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值