首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在cordova插件文件(iOS)的FileReader上调用readAsArrayBuffer方法时出现内存不足错误

在cordova插件文件(iOS)的FileReader上调用readAsArrayBuffer方法时出现内存不足错误,这是因为iOS设备对内存的限制导致的。当读取大文件时,内存不足错误可能会发生。

解决这个问题的方法有以下几种:

  1. 优化文件读取:可以尝试使用其他方法来读取文件,例如readAsDataURL或readAsText。这些方法可能不会占用太多内存,但需要根据具体需求来选择。
  2. 分块读取:将文件分成多个块进行读取,每次只读取一部分数据,然后处理完后再读取下一部分。这样可以减少一次性读取大文件所需的内存。
  3. 压缩文件:如果文件内容允许,可以尝试对文件进行压缩,减小文件大小,从而减少内存占用。
  4. 使用流式处理:使用流式处理的方式读取文件,可以在读取的同时进行处理,而不是一次性将整个文件读取到内存中。
  5. 优化内存使用:在处理文件时,尽量避免创建大量临时变量或对象,及时释放不再使用的资源,以减少内存占用。

对于cordova插件文件(iOS)的FileReader的readAsArrayBuffer方法出现内存不足错误的解决方案,以上是一些建议。具体的解决方法还需要根据具体情况进行调试和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入理解xhrresponseType中blob和arrayBuffer

当时就被这货坑了一下,以为返回数据能够够Blob构造函数接收,并正确显示。 Blob对象 Blob也是比较有意思,mdn解释是Blob对象表示不可变类似文件对象原始数据。...详细可参考另外一篇我写文章 ---- 正确video流打开方式 还有一点xhr.responseText类型为DOMString,只有当responseType为DOMString才有正确数据...后续 项目中video都存储移动设备中,如果都放在blob中,会造成内存大量占用,因是cordovawebapp形式,故采用插件cordova-plugin-file, 相关写文件代码如下...}, self.onErrorReadFile); } onErrorReadFile() { console.log('Failed file read: '); } 因安卓和ios...下文件存储路径不一样,故需要做一个判断,文件存储目录 function getDirectory() { let isIOS =/(iPad|iPhone|iPod)/g.test(navigator.userAgent

2.9K40

使用 Cordova 构建应用流程

安装,您应该能够命令行上调用节点和 npm。...cordova-plugin-wechat 一个 cordova 插件,一个微信 SDK JS 版本 cordova-plugin-zip 一个 Cordova 插件解压缩文件安卓和 iOS。...插件使用方法 cordova中使用以上插件方法都是相同,下面就以cordova-plugin-camera插件使用为例: 步骤1 - 安装相机插件 命令提示符窗口中运行以下代码以安装此插件...>, []); 这将从 WebView 向 Android 本地端封送一个请求,通过 args 数组中传递附加参数,有效地调用服务类 action 方法。...这种方法只有在你确定没有其他插件会依赖于你引用库(例如,如果库是特定于你插件)情况下才能使用。 否则,如果另一个插件添加了相同库,就有可能导致你插件用户出现构建错误

4.2K11

HTML5中拖放功能

= new FileReader(); } FileReader接口三个属性: 返回读取文件状态 数据 读取发生错误 readyState属性,只读 读取文件状态: EMPTYP,值为...0, 表示新FileReader接口已经构建,且 没有调用 任何读取方法 默认状态。...DONE,值为2,表示读取文件结束,可能整个 File对象 或 Blob对象 已经完全 读入内存 中,文件读取过程中出现错误,或在读取过程中使用了 abort()方法 强行中断。...error属性,只读 获取读取文件过程中出现错误:4种类型 NotFoundError,找不到读取资源文件。...通常是数据URL表示网址 长度受到 限制 FileReader接口方法 第一,readAsArrayBuffer() 方法,将文件读取为 数组缓冲区 readAsArrayBuffer(<blob

2.6K10

文件切片上传优化,子线程计算文件hash,pLimit库并发控制上传

生成hash 无论是客户端还是服务端,都要用到文件和切片 hash,生成 hash 最简单方法文件名 + 切片下标,但是如果文件名一旦修改,生成 hash 就会失效。...事实只要文件内容不变, hash 就不应该变化,所以我们根据文件内容生成 hash。 这里我们选用 spark-md5库,它可以根据文件内容计算出文件hash值。...reject(fileReader.error) fileReader.abort() } }) } 如果上传文件过大,读取文件内容计算hash非常耗时...方法调用生成文件hash代码得到hash值,将hash值+索引号作为切片名字上传....hash,如果文件过大,hash值计算会比较慢,还有一种方式就是计算抽样 Hash,减少计算字节数可以大幅度减少耗时;在前文代码中,我们是将大文件切片后,全量传入 spark-md5.min.js

9110

神奇Cordova — 利用H5进行APP开发

cordova 出现就是一股清流,它能实现将 h5 页面打包成 android 或 ios 版本,实现了 android、ios、pc 端页面的统一。 内容都用 h5 书写,差异性和成本都下降了。...它所支持各种开源插件也能轻松实现对手机众多接口调用,功能性没有问题。 操作需要掌握一定 NodeJs Cordova 安装: 1. 下载 jdk,安装 JAVA 环境,配置系统环境。...测试是否安装好了 cordova,继续命令行里输入 cordova -v 检查 cordova 版本号,如果有版本信息则说明已成功安装 cordova。 4....新建 ios 项目 cordova platform add ios 8. folderName 目录下有一个 www 文件夹,里面放自己项目里 html、js、css、image 文件。...官网附有调用手机功能或其他功能插件。github 搜索 cordova + 关键字也可以找到很多很有用插件。继续保持学习吧。 沈唁志|一个PHPer成长之路!

1.7K30

给Ionic写一个cordova(PhoneGap)插件

www:这里放置是js调用原生代码api,里面有调用方法和返回对象(可无)。...cordova命令用,请不要忽略~ plugin.xml:这个文件里面是以xml形式定义了包路径以及api(js)对应原生调用方法......,以及插件需要权限声明(比如相机权限、位置权限、联系人权限等~),打apk及ipa包后此文件会被融合~ README.md:这里是一些使用说明、注意事项等~,一般你将开发插件共享github时候会需要这个...,根据动作走相应处理逻辑 * args:js调用方法参数,均以json形式读入(这里未使用) * callbackContext:方法返回对象,对象里面包好两个变量...以上两张图中,第一张图是项目目录下打 "cordova plugin list"命令列出当前项目所用所有的cordova插件,第二张图是在当前项目下将插件添加到项目中,只要不出现fail字样即插件添加成功

1.4K40

给Ionic写一个cordova(PhoneGap)插件

www:这里放置是js调用原生代码api,里面有调用方法和返回对象(可无)。...cordova命令用,请不要忽略~ plugin.xml:这个文件里面是以xml形式定义了包路径以及api(js)对应原生调用方法......,以及插件需要权限声明(比如相机权限、位置权限、联系人权限等~),打apk及ipa包后此文件会被融合~ README.md:这里是一些使用说明、注意事项等~,一般你将开发插件共享github时候会需要这个...,根据动作走相应处理逻辑 * args:js调用方法参数,均以json形式读入(这里未使用) * callbackContext:方法返回对象,对象里面包好两个变量...以上两张图中,第一张图是项目目录下打 "cordova plugin list"命令列出当前项目所用所有的cordova插件,第二张图是在当前项目下将插件添加到项目中,只要不出现fail字样即插件添加成功

1.9K100

【技巧】ionic3优雅解决启动前、后黑白屏问题

原因是: 黑色背景:其实是我们看到首页第一帧之前,看到默认背景色,黑、白色对应就是黑白背景。 那解决方法是:让这个黑色背景变成用户喜欢看到画面或者让它透明化。...; 上述两步可以直接下载已放到github插件cordova-fix-blackscreen。...这是一个很强大插件,能满足很多定制化需求,建议有空了解一下。...4)应用项目的config.xml文件添加下面一句,指定使用主题(2选1),这样cordova buildcordova-custom-config插件会执行并修改这句里文件参数。...,若无有效信息,再网页调试,若也没错误,那就基本是原生插件问题,进行真机调试。

3.5K60

如何浏览器里用js解析excel文件

那么这里就出现了一个问题,我们如何能拿到excle文件二进制数据呢? 这里又牵扯出了一个问题,浏览器如何读取excel文件二进制数据,这里需要用到HTML5规范一个新特性FileReader。...执行mozGetAsFile()方法后返回结果。...按照FileReader文档使用方法,分为三步,第一步new一个FileReader对象,第二步监听FileReader实例onload函数,函数事件对象中存储着读取结果,第三步通过调用FIleReader...将readAsBinaryString替换为readAsArrayBuffer方法,打印结果如下: ?...这里需要注意,当调用XLSX读取excel二进制数据类型时候必须指明数据类型,上图中二进制数据是通过readAsBinaryString方法读取,所以type应该传入binary,如果是readAsArrayBuffer

10K52

Vue里如何实现excel转json功能「建议收藏」

前言: 因为做微信小程序云开发,云开发导入数据需要json格式,然鹅我们市场部小姐姐给我文档是excel文件,导致我需要去手动录入,后来在网上搜了下。...有通过复制excel文件内容粘贴后生成:http://www.jsonla.com/excel2json/ 有通过上传excel文件后生成json文件下载却需要付费:http://www.yzcopen.com..., 一个是复制插件:vue-clipboard2 一个处理xlsx插件:XLSX 先给它安排上: cnpm i xlsx --save-dev 安装后在当前页面引入: import XLSX...$Notice.warning({ title: '文件类型错误', desc: '文件:' + file.name + '不是EXCEL文件,请选择后缀为.xlsx...= new FileReader() reader.readAsArrayBuffer(file) reader.onloadstart = e => { this.uploadLoading

1.1K30

自定义Cordova插件详解

一、Cordova基础点 在混合式应用中,我们通过现有的Cordova插件,可以轻松 H5 上调用手机native功能。...那Cordova插件基础要点是什么呢?其实就是把原生代码调用方法映射为js统一接口,供H5使用而已....Cordova 自定义插件官方文档 二、观察现有应用结构 打开任意一个基于Cordova技术hybird app开发目录,添加过平台(android、ios等)和安装过插件的话,你会发现结构大致是这样子...目录下那个js) name:模块名称 clobbers/merges target:H5通过它调用js中间件方法(ts调用方法前缀) - platform name...: ionic cordova plugin add /Users/cordova/MyToast ionic2或以上使用时,打开任意一个ts文件头部声明如下: declare let cordova

2.2K30

Cordova插件使用——Office文档在线预览那些事

使用能解释文档插件打开。 4. 调用本地office程序打开。...第二种方式,对于ios就很简单了,本来浏览器就支持预览office文档,所以只需调用 webView 加载网络文件路径即可,但可惜是androidwebview不支持,不知道将来会不会支持。...使用webView打开 对于ios,也仅限于ios,使用浏览器插件,如使用cordova-plugin-themeablebrowser即可。...调用本地应用打开 对于android,可以使用 cordova-plugin-file-opener2 或 cordova-plugin-fileopener 前者是官网native推荐插件,后者是我个人觉得还行插件...,这个时候可以简单改下源码,添加一个文件扩展名参数,当这个参数不为空,用它做映射,为空,用它原来方法即可。

4.5K40

Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)

Phonegap项目,做支付时候,当把网站打包到ios或android端成app后,app通过wap调用银联在线存在一个问题: 就是当从银联支付成功后,再从服务器返回到app客户端就很难实现。...所以这里就必须借助Phonegap插件js脚本,通过js调用ios端或android端原生代码,然后再通过原生代码调用银联支付专门为移动客户端准备sdk,去进行支付。...2、通过Phonegap脚本插件调用OC代码,OC调用银联支付接口,弹出银联支付控件,输入你银联卡号和手机验证码等信息,完成支付 ? ? ? ?...端代码,js脚本调用OC代码需要Phonegap提供一个脚本插件支持: cordova.js (下载链接)   创建一个类Plugin, 继承Phonegap插件类:CDVPlugin,    还需要在配置文件...@end 4、支付成功后,ios 控制器收到银联支付结果,调用js脚本方法,处理后面逻辑:  // ios支付成功后,收到银联通知跳转到其他页面去, info参数有三种状态:success, fail

3.1K20

Hybrid App 应用开发中 5 个必备知识点复习

更新最为快速; 由于web app资源是直接部署服务器端,所以只需替换服务器端文件,用户访问是就已经更新了(当然需要解决一些缓存问题)。...它提供了 Cordova 和原生组件相互通信接口,并绑定到了标准设备API,这使你能够通过 JavaScript 调用原生代码。...Cordova iOS 实现原理: [cordova] 3.1 工作流程 Cordova 发起对原生请求: cordova.exec(successCallback, failCallback...gap_exec 的话,则认为是 Cordova 通信请求,直接拦截,拦截后就可以通过分析请求数据,分发到不同插件类(CDVPlugin 类子类)方法中: [iOS] Cordova 中优先使用这种方式...:,这个方法可以让一个 UIWebView 对象执行一段 JS 代码,这样就可以达到 Objective-C 跟 JS 通信效果, Cordova 代码中多处用到了这个方法,其中最重要两处如下:

2.2K00

Cordova 是什么

(Object object, String name) 第一个是 Cordova iOS 原理,第二个是 Android 原理。...(不知道现在还是不是,我之前看资料版本有点低) 第一个是 iOS UIWebView 将要开始跳转地址时候被调用,进而根据传入地址作出反映。...第二个是 Android 用于使一个 Java 对象可以 JS 中被访问,并调用方法。 这就开启了两个平台上 JS 和原生代码之间沟通窗口,这就是原理。...比如我写一个调用摄像头拍照片插件,支持 android 与 iOS 两个平台,我就要针对这两个平台编写 两份 完成同样功能原生代码,然后给一个统一 JS 接口,由 Cordova 把这个接口暴露给写...也就是说 Cordova应用理论可以做到任何原生应用能做到功能,而不是很多人误解“局限很大”,确实是有局限,但不是局限可能性

2.1K30

HTML5 FileReader 读取txt文件

自己试了半天不好使(后来发现貌似只能在IE跑)。于是使用H5fileReader来解决问题。...1:loading,文件正在被加载。 2:done,读取请求完成。 fileReader事件处理,6种。 onabort:文件读取终端,触发。 onerror:文件遇到错误触发。...onload:文件成功读取触发。 onloadstart:文件开始读取触发。 onloadend:文件读取结束触发(无论成功失败)。 onprogress:文件读取中触发。...FileReader.readAsArrayBuffer()。将文件读取为ArrayBuffer形式。 FileReader.readAsBinaryString() 。...将文件读取为二进制字符串(非标准方法,不推荐使用)。 FileReader.readAsDataURL()。读取文件URL,应用场景,本地预览图片。 FileReader.readAsText()。

8.1K40

【Hybird】274-Hybird App 应用开发中 5 个必备知识点复习

更新最为快速; 由于web app资源是直接部署服务器端,所以只需替换服务器端文件,用户访问是就已经更新了(当然需要解决一些缓存问题)。...它提供了 Cordova 和原生组件相互通信接口,并绑定到了标准设备API,这使你能够通过 JavaScript 调用原生代码。...Cordova iOS 实现原理: 3.1 工作流程 Cordova 发起对原生请求: cordova.exec(successCallback, failCallback, service,...gap_exec 的话,则认为是 Cordova 通信请求,直接拦截,拦截后就可以通过分析请求数据,分发到不同插件类(CDVPlugin 类子类)方法中: Cordova 中优先使用这种方式,...:,这个方法可以让一个 UIWebView 对象执行一段 JS 代码,这样就可以达到 Objective-C 跟 JS 通信效果, Cordova 代码中多处用到了这个方法,其中最重要两处如下:

1.3K30

基于React-Native0.55.4语音识别项目全栈方案

简单地说就是这个方法Android webview,iOS和PWA 基本都用不了。建议以后开发中可能用到一些不常用API完整地看一下相关信息。...cordova基本原理是将一般UI层操作和功能放在WebView里实现,需要调用移动设备硬件或原生接口,均通过添加cordova插件形式来实现,每一个cordova版本都会横跨支持若干个Android...另外,cordova是拥有crosswalk插件,可以直接以插件形式,cordova项目打包加入crosswalk,有相关需求读者可以以一试,尤其是团队里没有Android开发人员也没有专门设计人员时候...测试结果: 笔者曾在使用cordova3.3时候就融入过crosswalk,也通过cordova插件成功调用过底层GPS,摄像头及其他一些原生组件,当时是为了适配Android4.4版本。...,可能出现现象就是显示了第一个Modal界面,却执行了第二个Modal同名方法

3.6K30

我们是如何将 Cordova 应用嵌入到 React Native 中

多数问题,诸如 iOS 知识,只能了解一下大概,细节下来都得自己去解决。 再让我们回到 Cordova 嵌入 React Native 应用这个话题里。...原先我们用 Cordova 调用摄像头,界面超难定制,而使用 React Native 则便得很轻松 当我们 WebView 里,可以轻松地调用任何原生组件,体验也不比原生应用差 因此,主要工作就变成了...生产环境,Android 需要将路径放到 file:///android_asset/ 目录下: let source; 实际,那一点也适用于 iOS iOS 打包时候,我们也需要将 WebView...React Native 重写 Cordova 插件:常规插件调用 开始之前,让我们再说说一下调用问题。...过去我们 Cordova调用原生代码,便是 WebView Cordova 原生插件(PS:感兴趣读者可以阅读:Cordova插件 / 混合应用插件开发: hello,world解析》里,

4.8K60
领券