将syncfusion_flutter_pdfviewer与flutter web一起使用

问题描述 投票:0回答:2

软件包

syncfusion_flutter_pdfviewer
刚刚于 5 月 19 日发布,我想用它来将我的应用程序移植到网络中,但它不起作用。我的代码如下所示:

class _VPMontagState extends State<VPMontag> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('mytext'),
      ),
      body: Container(
        child: SfPdfViewer.network('myurl'),
      )
    );
  }
}

他们还在文档中写道,您应该添加

<script src="//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.min.js"></script>
<script type="text/javascript">
   pdfjsLib.GlobalWorkerOptions.workerSrc = "//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.worker.min.js";
</script>

进入

index.html
。我这样做了,但还是没用。

flutter dart
2个回答
1
投票

99% 的可能性您遇到 CORS 相关问题。 PDF 查看器尝试加载与您的应用程序(或本地主机)位于不同域的 PDF。

为了解决这个问题,你有几个选择:

  • 使用部署在与您相同的域上的代理,这会将调用重新路由到 PDF
  • 如果您有权访问存储 PDF 的存储服务器,您可以在其上配置 CORS

基本上,您遇到了与在 canvaskit 渲染器上显示外部图像类似的问题。 (在您的情况下,这对于 HTML 渲染器来说也是实际的,因为它看起来像 PDF 查看器使用 AJAX 加载 PDF)。 详情请看这里


0
投票

确保放置 `

pdfjsLib.GlobalWorkerOptions.workerSrc = "//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.worker.min.js"; `

index.html
代码的主体中,否则它将无法工作。

© www.soinside.com 2019 - 2024. All rights reserved.