为什么 webview_flutter 在添加到应用程序 (iOS) 的情况下不起作用?
Why webview_flutter not working in case of add to app (iOS)?
所以我试图在单击按钮时打开一个简单的 webview。
这是我的脚手架小部件的主体:
body:
WebView(
initialUrl: "https://www.google.com/",
javascriptMode: JavascriptMode.unrestricted,
)
有趣的是,当我独立 运行 这个 flutter 项目时,它成功地在 iOS 模拟器中打开了 Webview。 但是当我将这个 flutter 模块集成到现有的 iOS 应用程序中时,它不起作用(显示空白屏幕)。为了添加一个 flutter 模块,我遵循了这个 link,模块的其他部分工作正常。
我已经在 flutter 模块的 info.plist 中设置了这个:
<key>io.flutter.embedded_views_preview</key>
<true/>
我在 pubspec.yaml
文件中添加了以下版本:
webview_flutter: ^0.3.22+1
经过几个小时的调试,我发现我们需要在iOS项目info.plist
文件中添加这个密钥,而不是将其放入info.plist在flutter模块的iOS文件夹中
<key>io.flutter.embedded_views_preview</key>
<true/>
我 运行 也研究过这个问题,使用 webview_flutter. Fortunately, the ios setup from flutter_webview_plugin 似乎有效。我在 xcode 的 Info.list:
中使用了这个标签
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
请注意,它们目前正在合并到官方 webview_flutter 插件中。
如果url您使用的有一些特殊字符。所以,你需要像这样编码 URL,
WebView(
initialUrl: Uri.encodeFull(yourUrl),
...
)
所以我试图在单击按钮时打开一个简单的 webview。
这是我的脚手架小部件的主体:
body:
WebView(
initialUrl: "https://www.google.com/",
javascriptMode: JavascriptMode.unrestricted,
)
有趣的是,当我独立 运行 这个 flutter 项目时,它成功地在 iOS 模拟器中打开了 Webview。 但是当我将这个 flutter 模块集成到现有的 iOS 应用程序中时,它不起作用(显示空白屏幕)。为了添加一个 flutter 模块,我遵循了这个 link,模块的其他部分工作正常。
我已经在 flutter 模块的 info.plist 中设置了这个:
<key>io.flutter.embedded_views_preview</key>
<true/>
我在 pubspec.yaml
文件中添加了以下版本:
webview_flutter: ^0.3.22+1
经过几个小时的调试,我发现我们需要在iOS项目info.plist
文件中添加这个密钥,而不是将其放入info.plist在flutter模块的iOS文件夹中
<key>io.flutter.embedded_views_preview</key>
<true/>
我 运行 也研究过这个问题,使用 webview_flutter. Fortunately, the ios setup from flutter_webview_plugin 似乎有效。我在 xcode 的 Info.list:
中使用了这个标签<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
请注意,它们目前正在合并到官方 webview_flutter 插件中。
如果url您使用的有一些特殊字符。所以,你需要像这样编码 URL,
WebView(
initialUrl: Uri.encodeFull(yourUrl),
...
)