React-native升级记录(4):webview大坑

React-native升级记录(4):webview大坑

之前webview在ios上遇到动画的性能问题,换上了WKWebView;

useWebKit={true}

问题1

这个问题一直存在,本以为换成WebKit能顺带解决这个问题,没想到现实太残忍了。

onNavigationStateChange={this.handleNavigationStateChange}

这个方法可以监听webview的navigation变化情况,其中回返回一个参数canGoBack,用来告诉你页面是否可以回退,但是很遗憾,它返回的很不靠谱,尤其在H5页面采用路由跳转的时候,我这用的是hash路由的情况下就会出现偶尔返回false,偶尔又返回true的情况,导致无法正确判断页面是否可以回退。
官网也没有给出合理的解释:

https://github.com/facebook/react-native/issues/14889

问题2

这是一个新出现的问题,在使用WebKit以后,如果H5页面上调用了window.alert或者window.confirm是无效,坑爹的是我们使用的前端调试工具vconcole就用了confirm,还依赖了它的返回,导致某些调试功能就不能用了。
官方的说法是WKWebView对于alert和confirm的实现是需要额外的原生实现的,咨询了ios的开发同学,果然是这样,即使是原生的开发也有同样的问题,需要自己来实现。

咋办,这个问题对于开发来说是很困扰的,这个时候,我突然灵感闪动

	window.confirm=function() {
		return true;
	}

机智不机智,在不修改app的情况下只能先这样workaround。

  • 还好是影响开发环境,不上线,要不然还得评估这个影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值