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 >= 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" 还有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 字体包无法正常工作