Chrome Flutter Database打开问题仅在远程服务器上

mgdq6dx1  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(99)

我这里有一个奇怪的问题,我试图使用sqflite_common_ffi_web包进行flutter,有一些事情发生与数据库打开,但只有当构建请求从远程托管的服务器。即使是使用Chrome运行选项创建发布版本,一切都很好。
下面是输出:/shw 2错误捕获TypeError:WebAssembly:响应具有不支持的MIME类型'application/octet-stream',预期为'application/wasm' sqflite_sw.js:4634:78 # EXCEPTION!!!main.dart.js:49582:17不支持的结果null(null)
可能是什么问题?
尝试在localhost上运行,问题是相同的,使用flutter run -d Chrome或flutter run -d chrome --release创建测试构建成功,没有任何数据库问题。

jaxagkaj

jaxagkaj1#

问题解决了
一旦使用flutter run -d Chrome创建构建,它实际上并不加载服务worker,创建一个普通的构建最终将加载一个服务worker(flutter自己的worker),这与sw.dart.js有某种冲突。
解决方案如下:

var swOptions = SqfliteFfiWebOptions( sharedWorkerUri: Uri.parse('sw.dart.js'), forceAsBasicWorker: _useBasicWebWorker);

var _webContextRegisterAndReady = sqfliteFfiWebStartSharedWorker(swOptions);
sqfliteFfiWebLoadSqlite3Wasm(swOptions);
databaseFactory = databaseFactoryFfiWebNoWebWorker;

相关问题