Flutter中syncfusion_flutter_pdfviewer在iOS模拟器无显示如何解决?
问题修复方案
按以下步骤逐一排查即可解决空白问题:
- 调整iOS最低兼容版本
打开项目ios目录下的Podfile,取消首行platform :ios, 'XX.0'的注释,将版本号改为12.0及以上;同时打开Xcode中的Runner项目配置,将iOS Deployment Target同步修改为12.0。 - 配置M1模拟器架构兼容
在Xcode的Runner项目Build Settings中,找到Excluded Architectures配置项,给Debug、Release模式的Any iOS Simulator SDK添加arm64架构;之后在Podfile末尾添加如下配置:
配置完成后在ios目录执行post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' end end endpod deintegrate && pod install,重新运行项目即可。 - 配置网络白名单
在ios/Runner/Info.plist的dict标签内添加如下配置,允许网络资源加载:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> - 排查具体错误原因
给SfPdfViewer.network添加加载失败回调,打印错误信息定位问题:SfPdfViewer.network( 'https://cdn.syncfusion.com/content/PDFViewer/flutter-succinctly.pdf', controller: _pdfViewerController, key: _pdfViewerStateKey, onDocumentLoadFailed: (PdfDocumentLoadFailedDetails details) { print('加载失败错误:${details.error},错误描述:${details.description}'); }, )
替代PDF预览包推荐
- pdfx:全平台兼容,性能表现优异,支持网络、本地、assets路径的PDF加载,内置缩放、页码跳转、书签、文本选择等常用功能,对M1芯片iOS模拟器适配完善,是当前使用率较高的PDF预览方案。
- flutter_pdfview:基于原生PDF能力封装,轻量稳定,API简单易上手,支持本地和网络PDF加载,适合仅需基础预览功能的场景。
- advance_pdf_viewer:配置成本低,自带页面导航、手势缩放功能,无需额外复杂配置即可快速实现PDF预览,适合对交互要求不高的项目。
内容的提问来源于stack exchange,提问作者Prem
相关产品推荐
相关产品推荐

