flutter_webview设置cookie,在ios端H5获取cookie为空问题

版本:webview_flutter: ^3.0.4。

最近跟webview杠上了,产品改造,flutter做主要的壳子,链接到现有的H5上。由于H5已经有完整的功能,大部分的业务都需要在H5端去完成。使用webview需要支持以下几点:
1、flutter调用h5方法
2、h5调用flutter方法
3、支持设置cookie
4、路由监听
其实这四个都比较呢简单,但在实际开发中坑还是比较多的,今天就来填一哈ios上h5获取cookie为空的问题。

webview设置cookie

最新版本设置initialCookies参数即可,本来这样设置就可以了,谁知打开H5页面的时候提示登陆过期,后来发现webview设置cookie的时候做了编码操作,需要在H5端上重新解码才行,怎么解码看这篇webview_flutter,cookie解码

问题:android运行正常, ios还是登陆过期, 后调试发现,H5端获取cookie竟然是空的,网上找了很多都没能解决我的问题,于是只能搞搞曲线救国了(想一个不通过initialCookies设置就能把cookie传给H5端方式)。

解决方案

1、修改源码
需懂ios开发的,这方案只能放弃了。
2、webview加载完后调用H5的方法
onPageFinished方法执行的时候调用h5的方法,通过调用h5的方式去设置cookie。

onPageFinished: (e) {
  webViewController.runJavascriptReturningResult('setCookieIos(${getCookie()})');
 })

3、把cookie放在uerAgent上
把cookie放在uerAgent上,只要h5页面被加载,uerAgent就能获取到。

userAgent: Platform.isAndroid ? 'AndroidAPP' : '${getCookie()}-_-IOSAPP',

接下来就比较简单了,你只需要在H5接口被请求之前上拿到cookie重新设置上去就行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值