星期四, 11月 24, 2011

WebView

畫面如果用Android裡的xml,光想,就讓我頭痛。還是用HTML來的方便,而且現在有HTML5,Android也有WebView,再加上之前敗了這本建構Android應用程式,我想這樣應該會方便很多。可是用HTML,就得用JavaScript,也需要從Android程式那邊溝通,就研究了一下。
Using WebViews裡提供的範例,就有講其中的關鍵了,就是使用WebView提供的addJavascriptInterface(),這可以把Java的物件加到JavaScript runtime裡去,這樣JavaScript就可以使用這個物件。可以呼叫之後,那麼資料該怎麼傳遞呢??這牽涉到轉換的問題,而且Android只允許傳遞int、String等一些基礎類別,而不允許使用自訂類別,這就糟了。還好,這篇Working with Android addJavascriptInterface就有討論到這個問題,他的結論是使用JSON字串,這看來是最簡便的方法。JavaScript可以使用jQuery提供的parseJSON()與toJSON()來從字串轉成物件,或從物件轉為字串,而Java則可以用jackson來轉換。Build a Contacts Application With jQuery Mobile & the Android SDK這篇是更完整的使用範例。
Using WebViews裡另外有提到WebView的setWebViewClient,這個其實是WebView的callback,讓你可以在WebView遇到一些特定狀況的時候,作一些處理。詳細的說明要參照WebViewClient這邊。
如果嫌麻煩的話,是參考書裡的PhoneGap就好,書上介紹的步驟就只要寫HTML+CSS+JavaScript就好,不用特別再寫Java的部份,也不用裝eclipse,最後就用ant,就可以build出apk。

沒有留言: