Flutter Webview 插件对比(webview_flutter_wkwebview.AuthenticationChallengeResponse)

一、简介

  • 在使用 webview_flutter 4.10.0 插件时 iOS 平台报错 webview_flutter_wkwebview.AuthenticationChallengeResponse

  • 解决方案:

    • 方式一:问题解决方案,问题是从 webview_flutter_wkwebview 3.18.0 后出现的:

      1、可以降低 webview_flutter 版本,使用依赖 webview_flutter_wkwebview 3.17.0 的版本。

      2、或直接修改 pubspec.lock 里面 webview_flutter_wkwebview 依赖版本调整到 3.17.0

    • 方式二:改成使用 flutter_inappwebview 插件。

二、插件列表

1. webview_flutter

  • 官方插件,是 Flutter 官方提供的 WebView 插件,适用于基本的 WebView 使用。

优点

  • 官方支持,文档和社区活跃。
  • 简单易用,适合基础的 WebView 需求。
  • 跨平台支持(Android 和 iOS)。

缺点

  • 功能较为基础,不支持复杂的自定义配置(例如 JavaScript 双向通信等)。
  • 在一些特定平台(如 iOS)的稳定性可能不如其他插件。
  • 对页面加载进度的控制不如其他插件丰富。

适用场景:适用于需要嵌入网页的简单应用或功能较少的 WebView 用例。


2. flutter_inappwebview

  • 提供比 webview_flutter 更全面的功能,支持更多自定义和控制。

优点

  • 支持更多的 WebView 控制功能,如 JavaScript 和 Flutter 之间的双向通信。
  • 提供更丰富的事件监听、页面加载进度、错误处理。
  • 支持定制请求头、拦截请求、缓存控制等高级功能。
  • 支持 Android 和 iOS。

缺点

  • 插件较大,可能会增加应用的体积。
  • 配置和使用相对复杂,学习曲线较陡。
  • 可能出现一些兼容性问题,特别是在新版本的 Flutter 中。

适用场景:适用于需要复杂 WebView 交互、双向通信、请求拦截等自定义需求的应用。


3. flutter_webview_plugin

  • 一个第三方插件,提供简单的 WebView 嵌入方式,并且在 Android 和 iOS 上表现良好。

优点

  • 使用简单,适合快速嵌入 WebView。
  • 支持基本的页面导航控制,适用于一般的 WebView 使用场景。
  • webview_flutter 更加灵活,提供更丰富的回调方法。

缺点

  • 更新不如 webview_flutterflutter_inappwebview 活跃,可能会面临维护和兼容性问题。
  • 不如 flutter_inappwebview 强大,缺少某些高级功能,如自定义请求头、双向通信等。
  • 不再维护(已被弃用)。

适用场景:适用于需要简单 WebView 功能的应用,但不需要太多自定义。


4. webview_flutter_plus

  • webview_flutter 的一个增强版插件,提供了更多功能和改进。

优点

  • 基于 webview_flutter,因此它继承了 webview_flutter 的稳定性,并且增强了它的功能。
  • 支持自定义 JavaScript 通道,更多的控制选项。
  • 改进了页面加载进度的控制。
  • webview_flutter 提供了更多自定义功能。

缺点

  • 插件更新不如 flutter_inappwebview 频繁,部分功能不如 flutter_inappwebview 强大。
  • 仍然是基于 webview_flutter,因此功能上和 flutter_inappwebview 相比有所局限。

适用场景:适合需要在 webview_flutter 基础上获得更多控制和增强功能的应用。


5. flutter_webview_plugin_plus

  • 基于 flutter_webview_plugin 的一个增强版本,提供更多功能。

优点

  • 相比 flutter_webview_plugin 提供了更多的功能和稳定性改进。
  • 简单易用,适用于快速集成 WebView。

缺点

  • 可能会出现更新滞后的问题。
  • 仍然不如 flutter_inappwebview 提供那么多功能。

适用场景:适用于需要 flutter_webview_plugin 功能的同时,提升功能的应用。


6. flutter_wkwebview

  • 一个较少使用的 WebView 插件,主要用于 iOS。

优点

  • 主要针对 iOS 的 WKWebView,对于 iOS 平台优化较好。

缺点

  • 不支持 Android,平台限制。
  • 功能比较单一,适用范围较窄。

适用场景:如果应用只在 iOS 上运行,并且需要基本的 WebView 功能,这可能是一个轻量的选择。


总结对比

插件名称优点缺点适用场景
webview_flutter官方支持,简单易用,跨平台支持功能较基础,定制化不足基础 WebView 使用场景
flutter_inappwebview高度自定义,丰富的功能,双向通信支持,拦截请求等插件较大,配置复杂,可能有兼容性问题复杂 WebView 需求,双向通信等
flutter_webview_plugin使用简单,适用于快速嵌入 WebView,更多控制更新不活跃,功能相对单一,已弃用简单 WebView 功能的应用
webview_flutter_plus增强版 webview_flutter,更多控制选项,改进的加载进度控制功能较 flutter_inappwebview 稍弱webview_flutter 功能增强需求
flutter_webview_plugin_plusflutter_webview_plugin 的增强版,更多功能和改进更新滞后,不如 flutter_inappwebview 强大需要 flutter_webview_plugin 功能增强
flutter_wkwebview针对 iOS 的优化,简单使用仅支持 iOS,功能单一仅限 iOS 应用,基础 WebView 需求

结论

  • 简单 WebView 需求:选择 webview_flutterflutter_webview_plugin
  • 复杂 WebView 需求:选择 flutter_inappwebview,它提供最丰富的功能。
  • 仅需要 iOS 的支持:如果只是针对 iOS 平台,可以考虑 flutter_wkwebview,但功能较单一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值