約 1 分鐘閱讀

Read in English →

Android應用內瀏覽器的注意事項

當您正在開發一個網頁應用時,您需要考慮到瀏覽器的兼容性問題。我在開發過程中並未對Android應用內瀏覽器進行測試,但在正式上線以後出現了問題,導致數千次的交易失敗。我並不能從日誌中清楚地找出問題的根源,因此我花了一些時間來解決。我在這裡記錄下了這個問題,希望可以節省您未來的除錯時間。

當您正在開發一個網頁應用時,您需要考慮到瀏覽器的兼容性問題。我在開發過程中並未對Android應用內瀏覽器進行測試,但在正式上線以後出現了問題,導致數千次的交易失敗。我並不能從日誌中清楚地找出問題的根源,因此我花了一些時間來解決。我在這裡記錄下了這個問題,希望可以節省您未來的除錯時間。

當您的終端用戶透過第三方的Android應用內瀏覽器來訪問您的網頁應用時,您無法控制這個webView,因為它是由第三方提供的。如果setJavaScriptEnabled方法設置為false,那麼您就陷入了絕境。如果你有幸使前端代碼依舊能加載,請注意setDomStorageEnabled的設置預設為false。如果您參考官方文檔:

Android WebSettings setDomStorageEnabled Method

這個布爾標誌設定DOM存儲API是否啟用。預設值為false,表示WebView將停用DOM存儲API。當它嘗試訪問瀏覽器中的localStorage對象時,此設定可能會阻止您的代碼執行。

MDN Web Docs on localStorage

解決方案很簡單:在執行代碼之前,添加一個條件來檢查localStorage是否可用。這個問題不會產生有意義的錯誤消息,使得除錯變得特別困難,尤其是當您需要在Android應用內瀏覽器中模擬問題時。

複製此問題的一個技巧是下載以下工具:

Android WebView Test App on Google Play

此應用程式非常實用,因為它可以讓您在Android應用內瀏覽器中查看控制台日誌。

另一個通過服務器日誌進行故障排除的技巧是檢查請求頭部的User-Agent Strings。您可以通過檢查下面的範例頭部中的wv字段來識別WebView的請求:

Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile Safari/537.36

我希望這篇文章能對您有所幫助,並節省您處理這一特殊注意事項所需的時間。

繼續探索這個主題

  • Ionic框架 - 一種用於混合移動應用開發的開源SDK

    上週,我正在使用ionic框架建立一個原型。在數字化時代,隨著多功能手機應用程序需求的增長,開發人員尋求允許創建高性能、跨平台應用程序的技術。這就是Ionic框架脫穎而出的地方,它提供了一種專為混合移動應用開發量身定做的全面開源軟件開發套件(SDK)。此博客文章的目標是深入探討Ionic框架的細節,探討其主要特點、優點,以及它在競爭激烈的應用開發領域中…

  • 如何將您的Android應用程式寫入後台執行模式作為服務

    在某些情況下,您可能會遇到一個問題,那就是當用戶將應用程式置於背景模式或鎖定屏幕後幾分鐘,您的應用程式的功能就會消失。這可能導致用戶體驗變差,例如藍牙設備從您的應用程式中斷開,或者數據同步到服務器中斷。用戶可能會抱怨您的應用程式的連接性和穩定性。

  • 使用Apache虛擬主機和Python虛擬環境設置Django服務器

    花了我一些時間才使所有東西都能一起工作,所以我想把步驟記錄下來,以節省你未來的時間。

返回文章列表