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。

  • 還好是影響開發環境,不上線,要不然還得評估這個影響。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章