[错误]: capacitor/http 上传进度不受支持
作者: gasci创建于 2025年11月14日更新于 2026年9月10日
QQ 电容版本
我要谈一个自动结束的问题。 我也有同样的问题。
https://GitHub.com/ionic-team/concessor/issues/6658 (英语).
目前, Capacitor HTTP 插件不会放出上传进度事件,因此在请求中传递到Upload Progress没有效果. 这不是用户代码中的错误——这是插件的限制: • iOS:在没有代表的情况下使用URL会话。 上传进度需要执行urlSession( : task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:). • Android:不用包装直接使用请求Body。 上传进度需要自定义的 RequestBody 报告已写入的字节 。
相比之下,Capacitor文件传输插件在两个平台上正确处理本地上传进度.
上传进度对于处理大文件的移动应用程序至关重要. 添加本地支持将允许 Capacitor HTTP 插件用于:
- 支持上传过程中进度栏和UI反馈.
- 与XHR和Axios等网络API实现对等。
- 使Capacitor成为文件上传的完整解决方案而无需依赖额外的插件.
请求:请在iOS和Android上添加本地上传进度支持,并通过通知Listeners("上载进度")将其曝光,这样开发人员就可以在本地跟踪上传进度.
受影响的平台
- iOS (英语).
- 机器人
- 网络
当前的行为
我在代码中加入了进步事件 以显示下载文件给用户的进展 但启用 @ cactor/ http 插件后, 进度就不再出现 。 我只看到弹出 下载完成后,它会显示文件。 当我禁用插件时, 进度会再次显示 。
• 预期行为
用户应当看到下载进度.
项目复制
make XML Request( 方法、 参数、 页眉、 使用Database= truth、 取消Func、 进步Func) {
const req = this. checkParams(段落、标题、使用数据库);
如果(req.error!=============================================================================================== (==============================================================================
返回承诺.reject(req.error);
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
返回新承诺( 解决, 拒绝) {{
让获取 = 新 XMLHttp 请求( );
如果(cancelFunc!=============================================================================================================== (===================================================
取消Func.cancel= () {{{{{}
获取. bart( null ) ;
* ;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
// 打开连接
获取. open("POST", req.host);
// 设置额外请求头
为(在req.headers中键){
获取( set) 请求头( key, req. headers) [ key] );
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
获取. onload = (oEvent) { {
如果( 匹配. status QQ 200 QQ 获取. status < 300) {
// 区别于 @ cactor/ http 和 '正常' XMLHttp 请求
// @ capcor/ http 已返回 JSON
cust results = JSON.parse(牵引. response);
解决(结果.结果);
否则
拒绝( fach. statusText) ;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
* ;
// 发送进度数据返回
获取.on progress = (oEvent) {{
如果(进步Func !=========================================================================================================== (=======================================================
进步 Func( 已装入 ),
. . . . . . .内容来源: ionic-team/capacitor