Android4.4之WebView

   首次原創,勿噴...

       至android4.4 發佈以來,各個手機廠家也相繼跟上潮流,推出了時尚的android4.4手機系統,如魅族、小米三星。每次新的android新的sdk入市,總能讓我 們這些個苦逼程序員頭疼好一陣,無奈,既然選擇了遠方就只顧風雨兼程。首先給大家講講android4.4 新特性在滿足用戶體驗、需求、隱私保護的同時,給開發者帶來的問題。

       在android4.4之前,我們頻繁的使用sdk爲我們提供的WebView做一些數據展示和表單提交的工作,來爲一些短保質期的活動類或複雜的界面減 少開發成本和版本迭代。這樣的做法讓我們在android4.4悄悄來臨之際狠狠的撞在了槍口上,由於android4.4更改了WebView的內 核,app內嵌瀏覽器賴以生存的openfileChooser和onReceivedError等方法早android4.4上打死都調不到了。項目着 急上線之際,尋尋覓覓各大知名網站、論壇後無果,屋漏偏逢連夜雨,谷歌官網也因更新api而屏蔽。最後決定在webView入口做一下判 斷,android4.4用戶只能跳到第三方瀏覽器進行訪問。在公司唯一的已升級成4.4的測試機——mx3上測試通過。

      以爲事情就這樣結束了,終於上線了,好興奮,來,版本升個級,再點點,再測測。不測不知道,一測嚇一跳,後臺的小夥兒捧着他自個兒的手機跑過來說:“你這 apk怎麼老閃退啊?" 壞了,閃退可不是小事,趕緊拿過來瞅瞅,左一搗騰,右一搗騰,這傢伙就是連不上電腦,電池都沒反應,一個小時下來,心裏直犯嘀咕:“這手機該不是被刷成了 磚頭吧,嗯,一定是這樣,閃退純屬巧合。”正打算就此作罷,經理找來各種數據線,一根根試,皇天不負有心人,終於用最後一根線連上了。那麼,調試吧,報 can't find com.android.BrowerActivity  ,怎麼會調不到呢?手機上明明有倆瀏覽器啊?這可咋整?接着,繼續問度娘...找到答案後,愧疚之意油然而生,當初寫代碼時直接copy過來就用的,我在 跳轉的地方多做了一層限制“intent.setClass("com.android.BrowerActivity")”,正好Android 4.4不再內置瀏覽器:要麼授權用Chrome要麼自己研發,所以找不到。那麼爲什麼mx3就可以呢?原因是魅族和小米的系統都是在android系統的基礎上做相應改動,魅族系統的瀏覽器一直是自己研發的...

      項目完成,那麼最後總結下這次項目中學到的三點:

         1,不要純複製代碼,不同代碼不同需求,複製也行,一定要弄透每句代碼的作用,否則,出bug的時候有你忙的,技術就得深究執着,想淺嘗則止?那你趕緊轉行吧;

         2,對bug的寬容就是對自己的殘忍,試想這次沒有經理的堅持,我下週就乖乖的躺在家裏;

         3,活到老,學到老,走在技術的前沿才不至於遇到那麼多絆腳石,android4.4出來已經很久了,捱了打才知道疼,那你永遠只有受傷的命。

      最後感謝經理和舍小家爲大家把自己機子刷成4.4的小哥給我上的這一刻,廢話不多說了,接着爲追求更短,更快,更精的代碼而奮鬥。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章