前言
這篇文章主要分享下自己在開發Web App遇到的問題和過程,以及一些很已經(如何)填平的坑。如果您想要“如何開發Web App”或《30分鐘學會開發Web App》,請移步官方的開發手冊(文檔)。(下有鏈接)。
背景
感覺現在大家都在爭論(討論)兩件事情,Web App和Native App。前不久參加的HTML5守望者活動,各方大佬都在針對這二者之間的優劣,差異,兼容,普及等進行探討。當然,有爭議的才說明有價值嘛。
Chrome Web App
前不久Chrome又一次因超過了什麼什麼登上了各大新聞媒體的首頁,是的這已經不是第一次了。Chrome自身有強大的插件市場,和最近(也不算最近了)推出的Chrome Web App。之前也一直有進行過Chrome拓展的開發,被Chrome自身的API搞的暈頭轉向,不過在轉暈的同時也深深感受到了Web App的強大潛力。
制作Web App
剛剛試圖把一個簡單的“網頁項目”移植成Chrome Web App,說是移植,其實基本上就是重建,哦不,是新建……。現在的網頁項目是一個使用PHP、MySQL做後端,很常見的一個PHP網站,使用了Slim做為PHP框架。
那麼如何新建成Chrome Web App呢。顯而易見,使用PHP不大可能了。之前使用過Google自家的AngularJS做開發,所以還算熟悉,而且官方開發手冊也把AngularJS做首選的推薦開發框架。而且得益於Slim框架(PHP),全部都是RESTful的。
大概思路就是這樣:
一切都配合AngularJS和RESTful,這樣本地應用只存靜態頁面,然後通過叭叭叭發送請求數據返回就可以了……。
感受
使用Google自家的AngularJS,幾乎大部分浏覽器特性都可以使用,兼容性非常好,而且與桌面軟件幾乎無差,最重要的是了卻了我多年學不會軟件開發(嘗試過delphi未果)的心願……Web App太強大了!
資源 (需梯子)
Chrome Web App中文開發手冊
Google Plus中文社群
官方英文論壇
問題
在開發過程中遇到了幾個問題:
permissions不僅僅可以調用功能,如果使用外部資源也要加進去;
你可以放心大膽的使用類似-webkit,甚至V8的API;
-webkit-app-region: drag 可以控制應用拖動;
如果你執意要frame: 'none'的話,別忘記加上關閉按鈕;
期待與大家交流
實際上很多用戶還都不太清楚
,為此 Google Code Labs 最近的一篇文章很好的為我們解釋了這個問題。
簡單來說,一個 App (應用)應該有其顯示在浏覽器中的自有 UI(用戶界面),而 Chrome 擴展則多是用於提醒消息或者是增強用戶 web 體驗的工具。
對於開發者來說,這篇文章還深入解釋了 .crx 這個打包格式以及自動更新所需的權限相關的信息。另外你應該還可以知道你要實現的功能應該做成擴展還是做成 Web App,如果要做 Web App 的話,是做成托管(Hosted) app 還是打包(Packaged) app ——前者只是通過 manifest.json 文件將用戶重定向到另外一個安全的 web 地址,而後者 .crx 文件包括了運行 App 所有必需的 .css .html 等文件。
chrome os就是在linux上運行了一個chrome浏覽器,支持原來所有的web應用