包 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
。我这样做了,但还是没用。
最佳答案
您遇到 CORS 相关问题的可能性为 99%。 PDF 查看器尝试加载与您的应用程序(或本地主机)不同域的 PDF。
为了解决这个问题,您有几种选择:
- 使用部署在与您相同的域中的代理,这将重新路由对 PDF 的调用
- 如果您有权访问存储 PDF 的存储服务器,则可以在其上配置 CORS
基本上,您遇到与在 canvaskit 渲染器上显示外部图像类似的问题。 (在您的情况下,这对于 HTML 渲染器也是实际的,因为它看起来像 PDF 查看器使用 AJAX 加载 PDF)。 See here for details
关于flutter - 将 syncfusion_flutter_pdfviewer 与 flutter web 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67651884/