flutter_webview Ios端请求网页显示空白

flutter_webview Ios端请求网页显示空白

  • 在使用flutter_webview插件时,请求网页在Android端运行正常,但在IOS端一些网页可以正常打开而一些网页无法打开。
    经过排查和与前端同学沟通发现,打不开的网页有从后端请求js的操作。
  • 于是把问题定位到了js没有被加载。
  • 通过查看flutter_webview代码,发现其有javascriptMode属性,该属性用于控制js的开启和禁用。
enum JavascriptMode {
  /// JavaScript execution is disabled.(禁用)
  disabled,

  /// JavaScript execution is not restricted.(不限制)
  unrestricted,
}

而插件源码中这个属性是禁用的

const WebView({
    Key? key,
    this.onWebViewCreated,
    this.initialUrl,
    this.javascriptMode = JavascriptMode.disabled,//默认禁用
    this.javascriptChannels,
    this.navigationDelegate,
    this.gestureRecognizers,
    this.onPageStarted,
    this.onPageFinished,
    this.onProgress,
    this.onWebResourceError,
    this.debuggingEnabled = false,
    this.gestureNavigationEnabled = false,
    this.userAgent,
    this.initialMediaPlaybackPolicy =
        AutoMediaPlaybackPolicy.require_user_action_for_all_media_types,
    this.allowsInlineMediaPlayback = false,
  })

因此正是由于这个原因导致需要加载js的网页显示不出来,于是问题就引刃而解了,只要将javascriptMode属性设置为JavascriptMode。unrestricted即可。

你可能感兴趣的:(Flutter,IOS,flutter,ios)