[教育訓練紀錄] 讓 Android WebView 支援 WebSocket Client

jollen 發表於 October 19, 2012 11:48 AM

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」。

讀者留言 (0)

留言功能維護中。將於近日重新開放。

連絡作者

Jollen Chen,Moko365(仕橙3G教室)講師,熱愛研究 Linux 與 Android 技術。曾為 Motorola、HTC、Foxconn、LG、OPPO、騰迅、廣達電腦、緯創、仁寶等超過 50 家企業講授課程。目前在 MokoVersity 擔任軟體工程師,撰寫 Node.js 程式,也在幾家科技廠兼任 Android Framework 研發顧問。您可透過電子郵件 <jollen (at) jollen (dot) org> 或這裡與我連絡。