話說這兩天寫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

arrow
arrow

    cerberus 發表在 痞客邦 留言(0) 人氣()