Ionic native file plugin: file.readAsArrayBuffer() => Uncaught RangeError: Array buffer allocation failed

Ionic native file plugin: file.readAsArrayBuffer() => Uncaught RangeError: Array buffer allocation failed

我在 Ionic 做一个实习项目。在这个项目中,我必须读取 mbtiles 文件(通过 @ionic-native/file 插件)并将它们放入传单中(通过传单的 leaflet-tilelayer-mbtiles-ts 插件)。我这样做:

this.file.readAsArrayBuffer(PATH, MBITILEFILENAME).then(res =>{
                L.tileLayer.mbTiles(res,{
                    maxZoom: 18,
                    attribution: "mbtiles"
                }).addTo(this.map)
            })

由于某些原因我不使用 Ionic 测试应用程序,我必须直接在 phone 上测试我的应用程序,并使用 Android 工作室控制台查看发生了什么。

问题来了:
当我使用一个小的 mbtiles 文件(10Mo,测试文件)时它工作,但是当我使用一个更大的文件(880Mo,它必须在生产环境中读取文件)Android 控制台读我这个:

I/chromium: [INFO:CONSOLE(312)] "Uncaught RangeError: Array buffer allocation failed", source: http://localhost/cordova.js (312)

我尝试搜索 file.readAsArrayBuffer() 大小限制,但一无所获。

你能告诉我file.readAsArrayBuffer() 大小限制是多少吗?使用 Ionic 绕过此限制的任何解决方案?或者可以解决我的问题的东西?

我找到了怎么做,忘记了 post 答案。我使用了来自“@ionic-native/ionic-webview”的 WebView,因此不需要完全加载地图,只需加载需要的部分。

var pathToFile =
    this.file.externalDataDirectory + PATHTOFILE
var truePath = WebView.convertFileSrc(pathToFile);
L.tileLayer(truePath + "/{z}/{x}/{y}.png", {
    maxZoom: 18,
    attribution: "local"
}).addTo(this.map);