[教育訓練紀錄] 讓 Android WebView 支援 WebSocket Client
Android 內建瀏覽器不支援 WebSocket Client 端,導致使用 HTML5 開發的 Apps 無法使用 WebSocket 與 Server 建立連線。主要的問題在於 WebView 元件沒有實作 WebSocket 協定。Android SDK + PhoneGap 所製作 HTML5 Apps 是將 WebView 封裝至 APK 裡,所以 WebSocket 無法正常工作是正常的。
不過這個問題也沒有那麼難解決,在等待 WebView 加入 WebSocket 以及更多 HTML5 功能前,我們只能暫時自行實作。還好,現在有很多 Open source 的 WebSocket 程式庫可供使用。在這裡推薦的是 [Autobahn WebSocket]。
現在,只需要自行擴充 WebView,並使用 Autobahn WebSocket 來實作 WebSocket Client 即可。Android WebView 不支援 WebSocket 的問題解決了。在此提供一份簡單的程式碼實作:android-browser-websocket。
上述範例,亦使用於筆者的訓練課程「HTML5 與雲端技術教學: 六小時完成手機即時通APP」。