创建Chrome Web app

标签: 计算机技术 chrome chrome web store html html5 | 发表时间:2011-10-19 16:14 | 作者:Marshal Hobbes
出处:http://marshal.easymorse.com

编写了一个Chrome下使用的Web app。效果如下:

image

点击这个应用,就可访问我的博客。

看起来这很类似一个书签。其实有它特殊的好处,直接访问网站,程序无法自动获取HTML5的权限,比如存储限制。安装应用,相当于安装了一个配置文件,浏览器将打开必要的权限。

如果你也使用Chrome,可以通过这里下载安装

开发这样的应用并不难,过程类似以前开发Chrome扩展(编写最简单的chrome扩展)。


编写代码

首先,要创建一个目录,在该目录下创建一个文本文件,名为:manifest.json,这个文件是应用的清单文件,里面说明了应用的参数信息:

{
"name": "Marshal’s Blog",
"description": "A programmer’s blog.",
"version": "1.0",
"icons": {
"128": "128.png"
},
"app": {
"urls": [
"http://marshal.easymorse.com/marshal.crx"
],
"launch": {
"web_url": "http://marshal.easymorse.com/"
}
},
"permissions": [
"unlimitedStorage",
"notifications"
]
}

 

然后还要在创建一个图标文件,名称要和上面清单文件中的名字相同:

"icons": {
"128": "128.png"

也放置到该目录下。

这个最简单的应用,编码工作就算完成了。

 

调试和测试

调试和测试,需要用到Chrome:

image

在地址栏里输入:chrome://extensions

然后会看到上面图的界面,点击“开发人员模式”。看到下面的界面:

image

下面就可以把刚才编写好的代码部署了,点击“载入正在开发的扩展程序…”按钮,会弹出对话框,选择编码的目录,就可以部署到Chrome了:

image

这时就可以看到本文第一张图的效果了。可以点击,看是否能运行,如果能运行,调试和测试工作就也算结束了。

 

部署,正式使用

刚才的写法,只能在自己的Chrome浏览器中使用。如果想分享给其他用户使用。有两种方式:

hosted app和packaged app适用于不同场合,后者的程序(html和javascript等)是打包到文件中的,而前者只相当于设置了一些定制参数的常规网络应用。因此,本文这样的需求,比如查看博客,适用于hosted app。

hosted app既可部署到Chrome web store上,也可部署到自己的服务器上。本文是部署到自己的服务器上。

部署的文件格式是crx,实际上是zip格式,相当于把上面提到的目录用zip打包。当然没有那么简单,打包过程增加了Chrome规定的一些内容。

无需手工打包,打包是通过下面的按钮实现的:

image

然后,在弹出框中选取项目目录:

image

如果是第一次打包,不需要选择私有密钥文件,Chrome会自动生成一个:

image

如果不是第一次打包,需要选择到该文件。

打包后,如果部署到HTTP Server,比如Apache上,可能会报告如下错误:

Apps must be served with content type application/x-chrome-extension.

错误可能有多种情况,Chrome给出了官方的建议,见这里

如何判断HTTP请求头是否符合要求,我是用curl命令。linux和mac下都有:

~$ curl -I http://marshal.easymorse.com/marshal.crx
HTTP/1.1 200 OK
Date: Wed, 19 Oct 2011 07:50:29 GMT
Server: Apache/2.2.14 (Ubuntu)
Last-Modified: Wed, 19 Oct 2011 07:49:14 GMT
ETag: "4827b4-15c8-4afa213945cb6"
Accept-Ranges: bytes
Content-Length: 5576
Content-Type: text/plain

需要对crx结尾的文件使用指定的content type。

我的Apache Http Server是Ubuntu下默认安装的,修改配置的步骤如下,执行命令:

sudo vim /etc/apache2/mods-available/mime.conf

增加标粗斜体的行:

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-bzip2 .bz2
AddType application/x-chrome-extension crx

然后重启Apache:

sudo /etc/init.d/apache2 restart

再次执行:

~$ curl -I http://marshal.easymorse.com/marshal.crx
HTTP/1.1 200 OK
Date: Wed, 19 Oct 2011 08:01:17 GMT
Server: Apache/2.2.14 (Ubuntu)
Last-Modified: Wed, 19 Oct 2011 07:49:14 GMT
ETag: "4827b4-15c8-4afa213945cb6"
Accept-Ranges: bytes
Content-Length: 5576
Content-Type: application/x-chrome-extension
X-Pad: avoid browser bug

已经生效了。

 

安装和卸载

点击这里就可以安装了

image

会弹出窗口。

如果要卸载,可点击下图中的小扳手:

image

然后点击卸载:

image

相关 [chrome web app] 推荐:

创建Chrome Web app

- Hobbes - Marshal's Blog
编写了一个Chrome下使用的Web app. 点击这个应用,就可访问我的博客. 其实有它特殊的好处,直接访问网站,程序无法自动获取HTML5的权限,比如存储限制. 安装应用,相当于安装了一个配置文件,浏览器将打开必要的权限. 如果你也使用Chrome,可以通过这里下载安装. 开发这样的应用并不难,过程类似以前开发Chrome扩展(编写最简单的chrome扩展).

Chrome和Firefox联手开发跨浏览器Web App应用

- pansin - Solidot
whuhacker 写道 "Mozilla曾经计划发布一个开放的跨浏览器Web App Store,使得Web应用可以运行于Firefox、Chrome、IE、Safari、Opera等多种浏览器. 现在,Chrome正和Firefox联手推进这项计划. 一个名为Web Intents的框架正在开发以帮助Web Apps更加顺畅地运行.

Google瀏覽器玩免費 Game App! Chrome Web Store遊戲推薦

- hanjinkui - 電腦玩物
2010年12月8日Google推出了「Chrome Web Store」,這是一個線上應用程式商店,你可以在這邊找到各種免費或付費的Web Apps,將它們安裝在Google瀏覽器中,我們就能利用這些程式來繪圖、文書、閱讀、通訊,當然,還有玩遊戲. 關於Chrome Web Store的詳細介紹,可以參考:「Chrome Web Store 詳解.

Google Chrome 15 最新版讓 Web App 取代傳統網站

- noyo - 電腦玩物
我很贊同Mr.Jamie在「App Internet 革命」這篇文章裡所提出的思考,他說:「消費者跟你接觸的管道,正在從「打瀏覽器、連到你的網站」,變成「打開桌面、點選你的 App」;他們發現你的管道,正在從 SEO/入口網站,變成「App Store/Android Market」. Jamie關心的是從創業角度出發的行銷經營,而我關心的是從使用者工作與生活層面出發的應用,但App革命同樣都在發生,就拿我自己使用Android手機、iPad平板的經驗來看,我幾乎不曾「首先打開瀏覽器」,App才是我的上網入口,App商店則是我找到應用的管道.

Chrome和Firefox联手开发跨浏览器Web App应用框架

- justjavac - cnBeta.COM
还记得Mozilla曾经计划发布一个开放的跨浏览器Web App Store吗. 现在,Chrome正和Firefox联手推进这项计划. 一个名为Web Intents的框架正在开发以帮助Web Apps更加顺畅地运行. Web Intents由Google的开发者Paul Kinlan提出,而现在Google Chromium以及Firefox的开发者们都在参与该计划.

Chrome移动端用户破10亿:web不死,或将消灭App

- - 雷锋网
今天,谷歌Chrome迎来50版升级,移动端用户破10亿大关. 而在2010年,《连线》杂志刊文称:Web已死. 在那篇封面报道中,《连线》总编辑克里斯·安德森(Chris Anderson)说,这是一个App的时代,到处流行的都是Web大势已去,App才是王道. 在《Web已死》文章中,克里斯·安德森说从诞生到现在,万维网(World Wide Web)已经走过了20多个年头.

iOS Web App初步

- - 新浪UED
iOS Web App开发,配合HTML5,是目前比较热门的话题. 今天,先抛开HTML5,我们来尝试在PhoneGap框架上进行简单的开发. PhoneGap是一个使用HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台. 它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry等智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能.

Angry Birds 飞向 Chrome Web Store

- Kofai - 谷奥——探寻谷歌的奥秘
Chrome拉到了一个强力的支持游戏:Angry Birds. 它们的Chrome Web App是用WebGL和Canvas技术打造的,可以充分发挥Chrome浏览器的性能优势. 他们号称可以达到60fps的速度,不过在现场演示看起来稍微有点卡(那还是图形很简单的前几关呢). Angry Birds还使用了离线技术,你可以在离线的情况下继续玩游戏.

Web未死,Chrome重生

- - PingWest
那些关于Web已死,未来App将主宰一切的论调可以歇歇了,那些认为Android应该下一步渗透到PC计算设备上的论调也可以歇歇了——就连Google自己恐怕都不这么认为. 在逐渐淡化Android品牌的同时,Google正在不断强化其在PC端的另一个品牌——Chrome. 从5年前的Chrome浏览器、4年前的Chrome OS到3年前的第一代Chromebook笔记本电脑,直到现在,从Google今天上午在旧金山发布的全新设计的Chromebook新一代笔记本Chrome Pixel,Google对Web未来的思考和基于Web的应用,已经形成了与Android完全不同的另一个体系.

Chrome 的 Web Intents 会改变 Web 吗?

- hailin - 爱范儿 · Beats of Bits
2011年8月4日,Chrome 团队宣布将支持一个新的技术—— Web Intents. 这个技术未来可能会极大的影响网络应用和浏览器. 什么是 Web Intents. 如果您用过 Android 手机可能就会对这个技术有所了解. Android Intents 可以让两个独立的程序之前通信互相,神奇的是这两个程序中的任何一个程序可能不知道它在和谁通信.