我們通常把移動開發分為Web、Native和Hybrid,但其實Hybrid又可以細分的。最簡單的是在Native中放一個WebView,然后加載一個兼容智能機的網站,其實就相當于在用戶的手機上建立一個快捷方式,也算是占據用戶桌面的應急用法吧。用這種方法要注意檢測網絡是否正常,不正常要給予提示,否則蘋果是不予通過的。第二種是將Web相關文件全部放在本地,數據庫一般用Sqlite做本地存儲,用戶就算不聯網也能工作。第三種可能是以Native為主,在某些特定的模塊才會用到WebView。
其實要我說,只有第二種才算是真正的Hybrid,話說Hybrid這個詞可真難聽,翻譯過來的詞是雜種、雜交,既然大家都這么用,我也就隨了吧。很重要的一點是Native和Web有沒有交互,沒有的不算,你直接在WebView中加載一個HTML頁面,這算哪門子的Hybrid開發,這種也談不上什么技術含量了,沒什么好講的。你這種開發很難模擬Native的體驗嘛,用戶一看就不對啊,我說的Hybrid開發是那種多數用戶看不出差別的。
之所以我要把Hybrid開發的種類講清楚,是因為它們遇到的白屏問題有所不同,有些白屏問題是可以通過技術解決的,有些是需要通過設計上去解決的,通常我們說的白屏有三種。
第一種是頁面切換帶來的白屏,就是你從index.html跳轉到product.html會出現的白屏,嵌個WebView就加載一個網站最容易出現這種問題。這個問題只能從設計上解決,技術上是無法解決的,或者解決起來比開發一個Native程序成本還高。正確的做法應該是避免頁面之間的跳轉,將所有的內容放入到一個HTML中,通過CSS的Display屬性來切換View。
第二種是因為頁面過長帶來的白屏,在iOS的WebView中,如果頁面內容過長,iOS是不會一次渲染完成的,所以太長的時候,就會產生一種像Phtoshop中那種透明背景的方格效果。這個問題最好的解決方法還是從設計上入手,避免這種過長的滾動。使用iScroll做滾動可以解決部分問題,但還是不能太長。
第三種白屏是啟動的時候有討厭的白屏,因為WebView加載HTML并渲染有一定的時間,用戶一打開你的App,WebView還沒有加載并渲染完比,白屏出現了。這種情況解決要用一些技巧,iOS可以用兩個View,一個View放上Loading畫面,另一個View加載HTML,當HTML加載完畢后,用Javascript通知Native,收到HTML加載完比后Native代碼負責切換View即可。
有人肯定要問,為什么不直接用Objective-c代碼寫WebView的onLoad事件?很簡單,因為Load完成可能還有很多事要做,而且一般要延時300毫秒再切換View才能保證白屏不出現。你可能要再問了,直接用延時不好么,為什么要這么麻煩?不同的機器性能不一,而且有些時候內存占得多加載可能就慢點,直接延時太死。
本文來自成都品牌網站建設網站設計公司-創新互聯
本文名稱:怎樣解決Hybrid開發中的白屏問題
URL網址:http://m.newbst.com/news28/316278.html
成都網站建設公司_創新互聯,為您提供靜態網站、企業網站制作、云服務器、網站策劃、微信公眾號、網站建設
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯