代码之家  ›  专栏  ›  技术社区  ›  genericUser

无法在flutter中使用flatter_inappwebview下载文件

  •  0
  • genericUser  · 技术社区  · 2 年前

    我正在使用 flutter_inappwebview 包以在我的应用程序中显示web内容。我遇到了一个问题,无法从网络视图中下载文件。

    检测时 onDownloadStartRequest ,我正在使用 flutter_downloader 包下载文件(在这种情况下为PDF)。

    以下是我的代码的简化版本:

    InAppWebView(
            initialUrlRequest: URLRequest(
              url: Uri.parse(
                  'https://www.learningcontainer.com/sample-pdf-files-for-testing/'),
            ),
            initialOptions: InAppWebViewGroupOptions(
              crossPlatform: InAppWebViewOptions(
                useOnDownloadStart: true,
              ),
            ),
            onDownloadStartRequest: (controller, request) async {
              if (kDebugMode) {
                print('onDownloadStart $request');
              }
              final taskId = await FlutterDownloader.enqueue(
                url: request.url.toString(),
                savedDir: (await getExternalStorageDirectory())?.path ?? '',
              );
            },
          )
    

    我收到这个错误(在Android上测试):

    D/DownloadWorker(19088): 下载Worker{url=https://www.learningcontainer.com/download/sample-pdf-file-for-testing/?wpdmdl=1566&refresh=6479b7a279f2e1685698466,filename=null,savedDir=/storage/emulated/0/Android/data/co.home365.tenant_app.dev/files,header={},isResume=false,status=ENQUEUED E/FrameEvents(19088):updateAcquireFence:未找到帧。 D/DownloadWorker(19088):更新通知:{notificationId:1, 标题: https://www.learningcontainer.com/download/sample-pdf-file-for-testing/?wpdmdl=1566&refresh=6479b7a279f2e1685698466 , 状态:正在运行,进度:0}E/FrameEvents(19088): updateAcquireFence:未找到帧。D/DownloadWorker(19088):打开 连接到 https://www.learningcontainer.com/download/sample-pdf-file-for-testing/?wpdmdl=1566&刷新=6479b7a279f2e1685698466 D/DownloadWorker(19088):标头={}D/TrafficStats(19088 tagSocket(213),带statsTag=0xffffff,statsUid=-1 E/FrameEvents(19088):updateAcquireFence:未找到帧。 E/FrameEvents(19088):updateAcquireFence:未找到帧。 I/trustAllHosts(19088):checkServer受信任的I/flutter(19088 错误:找不到回调F/chromium(19088): [致命:aw_draw_fn_impl.cc(263)]OnContextDestroyed调用于: 20580/2.版本:19127 D/BufferPoolAccessor2.0(19088):缓冲池2 0xb400007756ae128:0(0大小)总缓冲区-0(0尺寸)已用缓冲区

    • 28/34(回收/分配)-6/34(提取/传输)D/BufferPoolAccessor2.0(19088):缓冲池0xb400007756eb358:0(0 大小)总缓冲区-0(0大小)已用缓冲区-11/16(回收/分配)- 5/12(获取/传输)D/BufferPoolAccessor2.0(19088):驱逐程序已过期: 2,驱逐:2 F/防撞垫(20595):-----BEGIN crashpad MINIDUMP----- F/crashpad(20595):-----BEGIN crashpad MINIDUMP----- F/防撞垫(20595): )iyJ“&eUWh06T-%QIZqylcYQBGc=1QO\MSA}98WBL3=/C]$q^/YQV]<],DDB8I+ fj&+T]D/9X}n>rsC):_e[m)u,H1TFT8afwv R2&v6DoYbkS?X/xA4!1%k6=x.j)w%u,v~+! tMQ+vGV0x@,6K&;"w<ESvDmg[(Cb\n<W.$9JKJM75b49oQc5uLoX%iE!Wh'se#i]8(sH v>&y~o~=O|zpA0v)~@<x、 F“:8ko22Q9-e8@~&mg6,onJv,%*t2Gxz(twzyMTy2EhCEaab”zq,bptgkW37\M1,BbmL:px^2E'-|oFs#62EEI<SdE[5]$-[nb@tc:[I!<Q,~%28-x-S^0pulini@-ow#“]->5|4v/{4R[=vJtHwrew- ioYn58XYP]AnhR>rR< [email protected] +-4Rnvsg#7"=1$>!b;!ROo~<l+4faT;t[K:fLB.9VL@R+kxnBjjD6Z<Yt9mUWS(: [email protected] /UaZ>~o6 Y~9o5>nl83k$+

    我做错了什么?

    为什么我不能使用下载文件 flutter_inappwebview 包裹

    扑动医生:

    医生总结(要查看所有细节,请运行扑动医生-v):[] Flutter(通道稳定,3.7.6,在macOS 13.4 22F66 darwin-arm64上 (Rosetta),locale en IL)[]Android工具链-为Android开发 设备(Android SDK版本33.0.0)[]Xcode-为iOS和 macOS(Xcode 14.3.1)[]Chrome-为网络开发[]Android Studio(版本2021.2)[]VS代码(版本1.78.2)[]已连接 设备(3个可用)[]HTTP主机可用性

    0 回复  |  直到 2 年前