flutter_webview Ios端请求网页显示空白

4 篇文章 0 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值