为啥 webview_flutter 在添加到应用程序(iOS)的情况下不起作用?
Posted
技术标签:
【中文标题】为啥 webview_flutter 在添加到应用程序(iOS)的情况下不起作用?【英文标题】:Why webview_flutter not working in case of add to app (iOS)?为什么 webview_flutter 在添加到应用程序(iOS)的情况下不起作用? 【发布时间】:2020-11-15 11:20:38 【问题描述】:所以我试图在单击按钮时打开一个简单的 webview。
这是我的 Scaffold 小部件的主体:
body:
WebView(
initialUrl: "https://www.google.com/",
javascriptMode: JavascriptMode.unrestricted,
)
有趣的是,当我独立运行这个 Flutter 项目时,它成功地在 ios 模拟器中打开了 Webview。 但是当我将这个颤振模块集成到现有的 iOS 应用程序中时,它不起作用(显示空白屏幕)。为了添加颤振模块,我遵循了这个link,模块的其他部分工作正常。
我已经在 flutter 模块的 info.plist 中设置了这个:
<key>io.flutter.embedded_views_preview</key>
<true/>
我在pubspec.yaml
文件中添加了以下版本:
webview_flutter: ^0.3.22+1
【问题讨论】:
【参考方案1】:经过几个小时的调试发现我们需要在iOS项目info.plist
文件中添加这个key,而不是放到flutter模块的iOS文件夹中的info.plist中
<key>io.flutter.embedded_views_preview</key>
<true/>
【讨论】:
【参考方案2】:我在使用webview_flutter 时也遇到了这个问题。幸运的是,flutter_webview_plugin 的 ios 设置似乎可以正常工作。我在 xcode 的 Info.list 中使用了这个标签:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
请注意,它们目前正在合并到官方 webview_flutter 插件。
【讨论】:
【参考方案3】:如果您使用的 url 有一些特殊字符。所以,你需要像这样对 URL 进行编码,
WebView(
initialUrl: Uri.encodeFull(yourUrl),
...
)
【讨论】:
以上是关于为啥 webview_flutter 在添加到应用程序(iOS)的情况下不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
webview_flutter3.0.4无法加载http图片
在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]
webview_flutter滑动存在卡顿问题的完美解决方法
DataCamp Light在flutter webview中不起作用