話說這兩天寫android,踩到一個android 2.3之後才有得一個大bug。
到目前為止完全找不到最好的解法,連google似乎都沒打算提供解決方法,就讓issue一直掛在那上面被人罵。
開發一般的android或iphone app,其實未必要真的會寫程式。
在iphone跟android提供的library中就有一個WebView的class,可以將網頁內嵌。
所以可以整個畫面都是一個網頁,光從外觀來看可以跟直接寫app完全沒兩樣。
差別就只在於按下連結或按鍵後,會很明顯的知道它再讀取中。因為他就是網頁,換頁是要透過網路的。
當然如果是讀取手機中的網頁檔案,可能就不會有這麼明顯的差別。
不過最重要的是,WebView能透過JavaScript跟app溝通。
簡單的說,只要你會javascript,你寫個網頁就能存取、操作或執行手機中的檔案或程式。
當然說簡單也只是對我們這種工程師來說,如果你只是一般會寫網頁的工程師,那應該還是很難懂。
前面都只是在描述起因,接下來要說的才是最有趣的部分。
參考這個網頁:http://fred-zone.blogspot.tw/2011/12/android-23x-javascript-interface.html
這位仁兄在裡面表示他為了替人"救火",也就是幫踩到上述地雷的人解決難題。
他提供了一個解決方法,程式碼寫法都貼出來了。
從裡面可以充分感受到他對於自身的救火能力蠻有自信的。
網頁內容及相關回覆先轉貼在下面
然後...
來看另一篇,國外人士的解法:http://quitenoteworthy.blogspot.tw/2010/12/handling-android-23-webviews-broken.html
還有這一篇:http://stackoverflow.com/questions/7424510/uncaught-typeerror-when-using-a-javascriptinterface
其實解法原理是一樣的,只是程式碼稍微修改並去掉註解。
稍為比較一下日期,我們可以發現...
2010/12/08,Jason Shah發表了這篇文章
2011/09/20,Mr. S在StackOverflow提供此解法給發問人 (懷疑其實是Jason Shah本人)
2011/12/03,Fred Chien在自己的部落格,提供了程式碼與Mr. S"十分雷同"的解法
...........
...........
其實論救火,我應該也算很強...
還曾因此不小心破解付費軟體,讓公司可能會因此省下一點點錢。
不過解決事情的能力有分兩種,像前東家的Beer,就是以個人實力自行研究解決方法。
另一種則是現在業界比較著重的,資料搜尋能力,也是現在一般年輕人最擅長的問題解決方式。
不過呢... 個人是認為,學來的都不算什麼...
當然我還是從這篇文章學到"原來這樣也能賺大錢阿" XD
還沒找到解法... 卻先來po文 Orz