|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册
x
Gears(原来叫Google Gears)是Google在07年推出的一个开源的浏览器插件,它可以让Google以及第三方的在线服务离线运行和使用。现有的Gears发行版本是0.2,主要有3大功能: Local Server, Database和Workerpool,分别为浏览器增加了离线缓存,本地数据库和多线程Javascript等功能。如果想体验Gears的功能可以试一试以下几个链接:
http://www.google.com/reader/
http://www.rememberthemilk.com/
http://www.zoho.com/
http://messaging.myspace.com/
http://docs.google.com
由于Gears是Open Source的项目,所以可以从网上下载到它的全部源代码,包括一些还未实现的新功能的设计文档等,通过研究这些代码和文档可以发现Gears是一个多么野心勃勃的项目:
1. AudioAPI
通过Javascript就可以很方便的播放,录制,编辑语音。不需要ActiveX或者Flash插件等,跨平台。
下载并播放音频代码:- var audio = google.gears.factory.create('beta.audio');
- audio.src = 'http://blahblahblob.com/sampleaudio.wav';
- audio.load();
- audio.play();
- //a handle to the blob can be got by invoking, if needed.
- var blob = audio.getMediaBlob();
复制代码 录制并上传语音代码:- var recorder = google.gears.factory.create('beta.audiorecorder');
- recorder.destination = <http post url>
- recorder.autoStream = true;
- recorder.record(); //asynchronous call
复制代码 2. CameraAPI
通过Javascript操作摄像头进行拍照或录像。示例代码:- // Create a camera object
- var camera = google.gears.factory.create("beta.camera");
- // Capture an image.
- var image = camera.captureImage(function(media) {
- uploadImage(media.content);
- });
- // Capture of a video, specifying a desired resolution and duration.
- var video = camera.captureVideo(function(media) {
- uploadVideo(media.content);
- }, 5000);
复制代码 3.BlobAPI
操作二进制数据,能够把很大Size的数据(图片,视频等文件)进行分片,并结合Gears的Workerpool,离线等功能进行自动的续传。即使网络很慢也能给用户带来良好使用体验。这个功能主要作为1和2的基础。
4.FileSystemAPI
提供通过Javascript安全访问本地磁盘数据的能力。代码示例:- var desktop = google.gears.factory.create('beta.desktop');
- var files = desktop.getLocalFiles(['Images (*.jpg, *.gif)', '*.jpg;*.gif', 'All files', '*']);
- for (var i = 0; i < files.length; ++i) {
- var img = document.createElement("img");
- img.src = files[i];
- document.body.appendChild(img);
- }
复制代码 5.ImagingAPI
类似HTML5规范中Canvas的实现,用来通过Javascript操作,编辑图片等跨浏览器的2D图形绘制能力。下面这段代码把下载图片,裁剪,缩放,显示以及上传等动作一气呵成 。- var request = google.gears.factory.create('httprequest');
- var serverUrl = 'http://picasaweb.google.com/photo/23432094834';
- request.open('GET', serverUrl);
- request.onreadystatechange = function() {
- if (request.readyState == 4) {
- process(request.responseBlob);
- }
- };
- request.send();
- function process(var srcBlob) {
- var canvas = google.gears.factory.create('canvas');
- canvas.load(srcBlob);
- var context = canvas.getContext('gears-2d');
- // crop out 10 pixels on each side.
- context.crop(10, 10, canvas.width - 20, canvas.height - 20);
- context.resize(1024, 768);
- var destBlob = canvas.toBlob();
- // update on screen:
- var localServer = google.gears.factory.create('localserver');
- var store = localServer.createStore(STORE_NAME);
- store.captureBlob(destBlob, IMAGE_URL);
- var img = document.getElementById('myImage');
- img.src = IMAGE_URL;
- // now upload to server:
- request = google.gears.factory.create('httprequest');
- request.open('PUT', serverUrl);
- request.onreadystatechange = function() {
- if (request.readyState == 4) {
- alert('Upload finished!');
- }
- }
- request.sendBlob(destBlob);
- };
复制代码 6.NotificationAPI
为浏览器增加桌面通知能力,使你的网站通过几句Javascript便具有像MSN和QQ那样的提示功能。示例代码:- <script type="text/javascript" src="gears_init.js"></script>
- <script type="text/javascript">
- var desktop = google.gears.factory.create('beta.desktop')
- var notification = desktop.createNotification();
- notification.title = Barbecue on Saturday';
- notification.icon = 'http://mail.google.com/mail.gif';
- notification.subtitle = 'Thu Mar 27 1:25pm - 2:25pm';
- notification.description = 'Hey everyone, looks like great weather this ' +
- 'weekend so I thought we might get together';
- notification.displayAtTime = new Date(2008, 5, 27, 14, 0, 0);
- notification.displayUntilTime = new Date(2008, 5, 27, 14, 0, 15);
- notification.addAction('View', 'http://mail.google.com/view?id=...');
- desktop.showNotification(notification);
- </script>
复制代码 7.GeolocationAPI
把GPS的能力带入WEB,使网站程序可以自动对使用者进行物理定位(当然需要使用者同意 )。这是个很有想象力的功能,联想于Gears已经有了Windows Mobile版,外加Google自家的Android移动平台和Google Maps,是不是一个永远不用升级地图的GPS导航软件浮现在你的眼前了呢
以上这些NB哄哄的功能有些实现了,有些还在开发中,外加0.2版新加的创建快捷方式和跨域httprequest访问能力,使得Google Gears成为一个拥有无限可能的WEB开发平台。 |
评分
-
查看全部评分
|