详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
HbuildX 17.2 SQLIT IOS无法打开
重现步骤
[步骤]
var name = 'encchat'
var path = '_www/db/enchat.db'
var fullpath = 'file://'+plus.io.convertLocalFileSystemURL( path );
plus.sqlite.openDatabase({
name : name,
path : fullpath,
success:function(){
console.log('打开数据库成功:')
plus.storage.setItem('dbOpen','1')
success?success():'';
},
fail:function(error){
console.log('打开数据库失败:'+error.code);
console.log('打开数据库失败:'+error.message);
err?err():''
}
});
[结果]
IOS以下错误
打开数据库失败:-1
11:12:34.878 [LOG] : 打开数据库失败:Error,http://ask.dcloud.net.cn/article/282
[期望]
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX]
Windows下 HbuildX17.2 和 Hbuild17.3均有此问题
[IDE版本号]
[windows版本号]
[mac版本号]
uni-app运行环境说明
[运行端是h5或app或某个小程序]
[运行端版本号]
App运行环境说明
[Android版本号]
[iOS版本号]
ios12.1
[手机型号]
iphoneX
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
联系方式
[QQ]
2 个回复
2***@qq.com (作者) - 90后老IT男
问题解决: IOS 需要先创建数据文件所在的目录才能正常打开sqlite数据 如果在不存在路径的地方创建数据库会导致数据库无法打开, 注意 _www 目录下无法创建子目录.
2***@qq.com (作者) - 90后老IT男
还有个问题 Android ios 不一致 IOS 需要再每个打开的webview打开数据库 而 Android 不需要 可以考虑把 数据库操作放到同意的地方处理 使用 evalJs 调用获取数据