欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

flutter_webview Ios端请求网页显示空白

程序员文章站 2022-06-04 14:41:24
...

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即可。