前兩天簡書的網站改版上線了史汗,同時上線的還有改版增強的移動端網頁琼掠,這次我們在移動端網頁中增加了登錄、點贊和評論功能停撞。
這些功能瓷蛙,在大部分手機瀏覽器中都很完好,但是在上線后怜森,在 UC 瀏覽器的 iOS 和安卓端都出現了比較嚴重的問題(這些問題在我們和正式域名不同的測試部署上都沒有出現)速挑,經過一天多的排查谤牡,把問題都解決了副硅,這里總結一下以便大家以后碰到可以更快的解決問題。
廣告過濾
UC 瀏覽器具備 廣告過濾
的功能翅萤,默認打開恐疲,可以在設置中關閉,上線之后發(fā)現套么,在廣告過濾功能開啟的情況下培己,UC 瀏覽器過濾了網頁所有的圖片,包括用戶頭像胚泌,文章圖片(簡書移動頁面沒有包含任何廣告省咨,只有簡書 App 的下載 banner 提示)都被過濾了無法顯示。
這個問題從我們開發(fā)者的角度可以做的不多玷室,需要 UC 調整廣告策略零蓉,可以嘗試聯系 開發(fā)者中心_UC優(yōu)視 下方的聯系方式溝通。
莫名移除特定元素
簡書移動頁面底部有一個 </p><div class="footer">
元素穷缤,里面是 登錄
和 打開 App
兩個按鈕敌蜂,如下圖:
這個元素在上線之后,我們發(fā)現以一種很隨機的情況出現和消失津肛,非常沒有規(guī)律章喉。靈機一動之下,嘗試改了一下 class
名稱, footer
改為 login-footer
后發(fā)現問題解決了,看來也許 UC 瀏覽器對 class="footer"
有特殊對待秸脱,這點無法確定落包。
Body 為空的 POST 請求
最撓頭的一個問題是,上線之后我們發(fā)現摊唇,所有的 POST
請求都失效了妥色,而且失敗的情況非常特別。請求發(fā)出后遏片,收到的是 200 成功的 Status Code, 然而收到的 Response Body 里卻是我們出現 404 時返回的錯誤信息嘹害。
經過一些調查發(fā)現,UC 瀏覽器代理了所有的請求吮便,同時把我們的 POST 請求改成了 GET 請求發(fā)給我們的服務器:
撓頭一陣之后笔呀,發(fā)現 UC 是把所有 body
為空的 POST
請求全部改為 GET
,所以在所有空 POST
請求中都加一個其實無用的參數 { f: 1 }
髓需,就可以防止 UC 把這個 POST
請求许师。
至此在 UC 瀏覽器上碰到的三個兼容性問題就都解決了。