Flutter中的Webview无法正常工作,出现平台错误

Posted

技术标签:

【中文标题】Flutter中的Webview无法正常工作,出现平台错误【英文标题】:Webview in flutter not working getting a platform error 【发布时间】:2019-09-11 15:26:23 【问题描述】:

flutter 中的 webview 出现错误问题

[ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
    PlatformException(error, Trying to create a platform view of unregistered type: plugins.flutter.io/webview, null)

尝试实现 webview

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。 但我做了这些步骤,它帮助了我:

1) 添加上网权限

<uses-permission android:name="android.permission.INTERNET" />

到 Android 清单: android/app/src/main/AndroidManifest.xml 就在应用标签上方。

2) 添加这个键:

<key>io.flutter.embedded_views_preview</key>
<string>YES</string>

ios/Runner/Info.plist

3) 添加完整的网址(带有http://www

4) 调用flutter clean,删除构建文件夹。

【讨论】:

在这种情况下调用“flutter clean”很重要。谢谢! flutter clean 很适合我。 在我的情况下,https 有效,http 给出了页面加载错误。【参考方案2】:

我遇到了这个问题并通过将Android minSdkVersion= 16 更改为minSdkVersion= 20 来解决它,您可以在以下位置找到它:

android > 应用程序 > build.gradle

为什么是minSdkVersion= 20

因为我在使用插件youtube_player_flutter 后遇到了异常,并且在插件的文档中他们声明您应该使用android minSdkVersion &gt;= 20,不幸的是默认情况下使用颤振minSdkVersion= 16,这就是为什么我得到PlatformException

我的建议亲爱的读者请仔细查看您正在使用的插件以及它们在 Android 和 iOS 上支持的版本

这就是我所知道的...

【讨论】:

遇到同样的问题...任何解决方案? @NIKHATSHAIKH 你改变了 minSdkVersion 吗? 我尝试更改它,但遇到了同样的问题:defaultConfig // TODO: 指定您自己的唯一应用程序 ID (developer.android.com/studio/build/application-id.html)。 applicationId "com.example.flutterapp" minSdkVersion 20 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 还有 【参考方案3】:

pubspec.lock 中的 webview_flutter 版本与 pubspec.yaml 不同,您可以更改 pubspec.lock 中的版本即可解决

【讨论】:

【参考方案4】:

iOS中,如果插件使用原生组件,则需要注册插件。

为此,您必须在项目中导入 FlutterPluginRegistrant :https://flutter.dev/docs/development/add-to-app/ios/project-setup

import FlutterPluginRegistrant

之后,您可以使用此行来注册您的插件:

GeneratedPluginRegistrant.register(with: FlutterViewController)

⚠️ 请注意,您必须在应用生命周期内注册一次插件。

【讨论】:

以上是关于Flutter中的Webview无法正常工作,出现平台错误的主要内容,如果未能解决你的问题,请参考以下文章

WebView中的弹出对话框无法显示,但可以在chrome浏览器中正常工作

iOS webview_flutter 可以正常显示页面但不表示弹出框?

在 Android 的 Webview 中嵌入 Spotify 无法正常工作

Flutter 应用程序中的 Google 字体包无法正常工作

Flutter - DEBUG 中的 Webview 正在工作,但在 RELEASE apk 上显示为空白,为啥?

Stripe 无法在 webview 中进行支付错误