在我的班級之一,我叫WebView.postUrl():如何調試與設備相關的WebView和/或WebViewClient異常?
getWebView().postUrl(url, EncodingUtils.getBytes(postData, "BASE64"));
其中上LG擎天柱小號完美的作品,但用於在HTC的Nexus One某種原因不能正常工作。
通過「作品」我的意思是目標網站的響應與預期結果的postUrl()查詢,其特徵是始終:
- 產生
WebViewClient.onPageStarted()
電話,隨後 WebView.loadUrl()
,隨後由WebViewClient.onPageFinished()
在罪魁禍首的Nexus
WebViewClient.onPageStarted()
呼叫生成,從來沒有任何其他呼叫。 顯然,WebView和/或WebViewClient在不同設備上的行爲不同,因爲兩個設備都運行完全相同的應用程序代碼。
(抑或是真實的反應有所不同,以不同的設備,它使用完全相同的WiFi網關的網站?)
這兩種設備上運行完全相同的應用程序代碼,但Android的版本略有不同:LG的運行2.3.3,N1運行2.2.1。
任何想法或提示如何處理這個棘手問題的調試?
例如,是否有任何掛鉤可以放置在某處以追蹤封面下的真實情況?
這是一個令人難以置信的幫助和急需的小費。我會執行並報告。 +1在此期間。 – an00b
好的,我回來了初始結果:我實現了'onReceivedError'和'onReceivedSslError',以便他們只記錄LogCat上的內容,並且......沒有任何錯誤!我對沒有任何'onReceivedSslError'並不感到驚訝,因爲它只是一個簡單的查詢(不一定是通過SSL),但事實上根本沒有收到的錯誤表明你的第二個猜測(服務器的用戶代理依賴行爲)可能是罪魁禍首。很快就會進行試驗。 – an00b
更新2:我通過在NA上僞造UA來進行快速實驗,與LG完全相同(使用'WebSettings.setUserAgentString'):(奇數)行爲保持不變!也就是說,網站對'postUrl()'沒有響應。我開始懷疑我自己的代碼中存在一個錯誤......(並不奇怪,但是當我的代碼在N1以外的所有手機上表現良好時,我怎麼能找到它?) – an00b