平台设置
大多数平台添加 webview_all 后即可使用,但部分引擎需要运行时组件或权限。
Android
Section titled “Android”最低 SDK 需要 API 24。根据页面能力添加系统权限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />如果 WebView 表单控件需要 Material Components 风格,请让应用主题兼容 Material Components。文件选择、拍照、录音等流程还需要应用自己处理 Android 运行时权限。
最低 iOS 13.0。页面需要访问摄像头、麦克风或定位时,在 Info.plist 添加说明:
<key>NSCameraUsageDescription</key><string>Allow pages to use the camera after approval.</string><key>NSMicrophoneUsageDescription</key><string>Allow pages to use the microphone after approval.</string><key>NSLocationWhenInUseUsageDescription</key><string>Allow pages to request location.</string>App-Bound Domains 需要宿主应用配置域名,并用 WebKitWebViewControllerCreationParams(limitsNavigationsToAppBoundDomains: true) 创建控制器。
最低 macOS 10.15。沙盒应用如需联网,需要启用 outgoing network entitlement:
<key>com.apple.security.network.client</key><true/>macOS 与 iOS 共用 webview_all_wkwebview,但部分 UIKit 风格的属性在 macOS 上没有实现。详见iOS 和 macOS。
Windows
Section titled “Windows”Windows 使用 WebView2,目标机器必须安装 Microsoft Edge WebView2 Runtime。
final version = await WindowsWebViewController.getWebViewVersion();if (version == null) { // 提示用户安装 WebView2 Runtime。}需要自定义用户数据目录或浏览器路径时,在创建 controller 前初始化环境:
await WindowsWebViewController.initializeEnvironment( userDataPath: 'C:\\Users\\Public\\MyApp\\WebView2',);需要 WebKitGTK 4.1。Ubuntu 系发行版可安装:
sudo apt install libwebkit2gtk-4.1-devLinux 实现会在标准 Flutter runner realize FlView 之前自动安装所需的
GtkOverlay,应用无需修改 linux/runner/my_application.cc。
使用 OHOS Flutter SDK,目标 OHOS API 12+。Web 内容权限由 onPermissionRequest 回调处理,但宿主应用仍然需要声明并获取对应系统权限。
Web 实现是 HTML iframe,必须遵守浏览器安全边界:
- 不能读取用户机器上的任意本地文件。
- 不能向跨域 iframe 执行 JavaScript。
- 不能拦截 TLS 证书错误决策。
- Cookie 受
document.cookie和浏览器隐私策略限制。