1

所以我试图在单击按钮时打开一个简单的 web 视图。

这是我的 Scaffold 小部件的主体:

body: 
WebView(
    initialUrl: "https://www.google.com/",
    javascriptMode: JavascriptMode.unrestricted,
)

有趣的是,当我独立运行这个颤振项目时,它成功地在 iOS 模拟器中打开了 Webview。但是当我将这个颤振模块集成到现有的 iOS 应用程序中时,它不起作用(显示空白屏幕)。为了添加颤振模块,我遵循了这个链接,模块的其他部分工作正常。

我已经在颤振模块的 info.plist 中设置了这个:

<key>io.flutter.embedded_views_preview</key>
<true/>

我在pubspec.yaml文件中添加了以下版本:

webview_flutter: ^0.3.22+1
4

3 回答 3

4

我在使用webview_flutter时也遇到了这个问题。幸运的是, flutter_webview_plugin的 ios 设置似乎可以正常工作。我在 xcode 的 Info.list 中使用了这个标签:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

请注意,它们目前正在合并到官方webview_flutter插件。

于 2020-10-20T08:31:09.863 回答
3

经过几个小时的调试,我发现我们需要在iOS项目info.plist文件中添加这个key,而不是把它放到flutter模块的iOS文件夹中的info.plist中

<key>io.flutter.embedded_views_preview</key>
<true/>
于 2020-07-30T07:36:39.127 回答
1

如果您使用的 url 有一些特殊字符。所以,你需要像这样对 URL 进行编码,

 WebView(
      initialUrl: Uri.encodeFull(yourUrl),
      ...
 )

于 2021-08-19T05:58:25.477 回答