我們的iOS應用程序具有一個Web視圖,它正在渲染來自文件:URL的頁面。當用戶觸摸<A>
元素切換頁面,時間大約20%,它卡住如下:UIWebView在webViewDidStartLoad後卡住
- 用戶點擊鏈接
<A>
- 我們得到WebView.shouldStartLoadWithRequest回調
- 我們得到的WebView。 webViewDidStartLoad回調
- 沒有任何反應後,該
屏幕仍顯示與它的聯繫原來的頁面。我們可以打破在兩個方面的僵局:
- 旋轉裝置
- 點擊屏幕
在這一點上,該頁面將立即完成加載。
我們所用的配方從這裏:
Javascript console.log() in an iOS UIWebView
,讓我們一些洞察頁面加載。我們將javascript方面的東西放在我們加載到頁面上的第一個腳本文件中,並且在我們執行旋轉或分接點解決方法之後纔會打印它的消息。
所以看起來,它開始加載頁面,並開始評估頁面上的東西之間的某處。
我們已經嘗試了一些變通,其中沒有幫助:
- 設置location.href,而不是使用標籤
- 從設置location.href JavaScript的超時
- 在didStartLoad回調,創建了一個線程,在webView上反覆調用setNeedDisplay
任何想法我們可能會做錯什麼?
你能評論一下網頁上的所有內容,或者大部分內容,但是仍然會重現問題嗎?那將是我第一個診斷的方法。也許這是一個頁面大小/內存問題。如果有應用程序內存錯誤,你是NSLog嗎? –
在我的應用程序中同樣奇怪的行爲。你找到了解決方案嗎? – olfuerniss
還沒有答案,儘管我很高興我們並不孤單。我已經看到了完全無關緊要的頁面的問題,正如我所說的,我們已經嘗試在我們要開始的頁面的開頭添加日誌記錄,但這並未發生。所以webkit已經離開了舊頁面並開始加載新頁面,但在解析任何內容之前就停止了。 –