17

好吧,我承认,在我研究清楚Gears Desktop API的使用方法并给自己的Blog增加“Shortcut”按钮之后,我发现原本是一个“添加到收藏夹”就能完成的功能,竟让我搞的如此复杂……这篇文章原本计划叫做“通过Gears Desktop API给你的Blog添加生成桌面快捷方式的按钮”,后来想想还是算了,太二了。

但不管怎么说,这也算是我的学习成果吧,所以思前想后,还是决定将其记录下来。

Gears的Desktop API功能其实是比较强大的,它不但可以在本地主机的桌面上升成指定图标样式(可以有别于Favicon)的快捷方式,更重要的是它可以调出本地文件选取的对话框。不过目前如果不是做Web 2.0网站,恐怕后者用处不大。所以主要研究的是调用API生成桌面快捷方式的方法。

根据Google官方给出的例子:

<br />
<script src="gears_init.js" type="text/javascript"></script>
 
<script type="text/javascript">// <![CDATA[
 
 var desktop = google.gears.factory.create('beta.desktop');
 
desktop.createShortcut('Test Application',
 'http://example.com/index.html',
 {'128x128': 'http://example.com/icon128x128.png',
 '48x48': 'http://example.com/icon48x48.png',
 '32x32': 'http://example.com/icon32x32.png',
 '16x16': 'http://example.com/icon16x16.png'},
 'An application at http://example.com/index.html');
// ]]></script>

我适当地修改成了我自己的版本,请参照代码中的备注修改:

 //Gears Desktop Shortcut Start<br />
<script src="http://code.google.com/apis/gears/gears_init.js" type="text/javascript"></script>
 
 //加载Gears初始化脚本文件
<script type="text/javascript">// <![CDATA[
 
 
function createShortcut() {
 
//Check Gears
 
if (!window.google || !google.gears) {
 location.href = "http://gears.google.com/?action=install&amp;message=借助于 Gears,您可以在桌面添加一个网站的快捷方式。请点击右侧按钮执行安装,完成后选择“Restart Browsers Now”。浏览器重启后将自动返回 Duet G. Blog。" + "&amp;return=http://www.duetg.com/";  //检测本地是否已安装Gears,若没有自动跳转到官方安装页面,安装完毕后跳转回指定地址
 }
 
//Add Shortcut
 
var desktop = google.gears.factory.create('beta.desktop');
 var description = "说真话,办实事,一切从简";  //快捷方式的描述
 var name = "Duet G. Blog";  //快捷方式名称,似乎目前不支持中文
 var icons = {  //快捷方式的指定图标,至少要有32X32的
 "16x16": "http://www.duetg.com/images/shortcuticon/icon16.png",
 "32x32": "http://www.duetg.com/images/shortcuticon/icon32.png",
 "48x48": "http://www.duetg.com/images/shortcuticon/icon48.png",
 "128x128": "http://www.duetg.com/images/shortcuticon/icon128.png"
 };
 
desktop.createShortcut(name,
 "http://www.duetg.com/",  // 快捷方式目标地址
 icons,
 description);
 }
// ]]></script>
<br />
 // Gears Desktop Shortcut End

至于Gears的初始化文件,建议使用下载下来后传到本地服务器上,这样无论在速度还是安全上都方便一些。初始化文件的下载地址是:http://code.google.com/apis/gears/gears_init.js

倘若是使用WordPress的话,大可把这段js代码添加到footer里面,然后在希望的位置通过链接或按钮来调用,方法如下:

  1. 链接
    <a onclick="createShortcut();return false;" href="#">创建快捷方式</a>
  2. 按钮
    <br />
     <input onclick="createShortcut()" type="button" value="创建快捷方式" />

这样一来,就可以在桌面生成指定的快捷方式了,并且即使没有安装Gears也没关系,因为有方便的向导来指导安装。

OK,就这样吧!

作者:Duet G.
文章短链接:http://u.duetg.com/dfMkwS
© 版权所有,转载请注明出处。

相关文章

25 Responses to “调用Gears Desktop API”

  1. Duet G. Says:

    试试新的OpenID的效果

  2. Duet G. Says:

    看看两个框是否都能用

  3. Duet G. Says:

    换了个头像,不知道好看否……

  4. Francis Says:

    老大,你站怎么这么奇怪,先是载入的时候出现一大堆的第三方东西,留言好像也不太对,最后总是有个Alert出来。

  5. Francis Says:

    啊,明白了,OpenID的那个HTTP必须要删掉才能正常评论……

  6. Duet G. Says:

    这确实是个问题啊,我得研究一下,要不会比较麻烦。不过倘若不点击OpenID那个框就不会出现这个情况,主要是ID Selector造成的,但用起来倒是比较方便。

  7. Duet G. Says:

    这个第三方的问题我的确需要反思一下,加载的第三方js过多了……有悖于我之前一切从简的初衷啊。要不……我把他们的js都下载到本地?!!

  8. Duet G. Says:

    测试新地址栏

  9. Duet G. Says:

    自动提交测试

  10. Duet G. Says:

    标准地址框使用方式测试。

  11. Duet G. Says:

    取消coComment之后检测提交速度。

  12. Duet G. Says:

    增加AJAXComents后测试提交速度

  13. Duet G. Says:

    再次测试速度

  14. Francis Says:

    速度好些了,这次注册了个OpenID,试试看。

  15. Duet G. Says:

    @Francis, 你上来这会儿还没弄好呢,今儿晚上下了血本儿,先是把ID Selector的js下载下来改,顺便还调整了一下颜色,然后干脆把但凡是引用的js能下的都放在了本地,引用的图片也是,又加了WP Super Cache插件,我想应该没啥问题了吧?(测试回复)

  16. Duet G. Says:

    绑定OpenID到帐号后,评论名称就不会链接到原来的博客地址了,除非是以非用户身份评论,就像现在这样。(测试回复)

  17. Duet G. Says:

    倘若是用右边的ID Selector按钮,就可以很方便的使用OpenID发表评论,OpenID将会把你的个人资料如用户名和邮箱地址返回至Blog内作为评论的用户名和邮箱地址,所以如果使用OpenID发表评论,姓名和邮箱是可以不填的。(测试回复)

  18. Duet G. Says:

    目前除了使用OpenID发表评论会由于和OpenID提供者服务器交换数据而导致延时较长外,一切都很不错。

  19. Duet G. Says:

    新安装了reCAPTCHA,测试一下好用否。先是非OpenID评论。

  20. Duet G. Says:

    再接下来是OpenID评论。

  21. Duet G. Says:

    如果输入的是管理员的OpenID,验证码是完全拦不住的,现在删掉了管理员的OpenID,再试一次。
    结果,可以正常拦截。效果非常不错。

  22. wyqbailey Says:

    看不到代码呢?有意思

  23. wyqbailey Says:

    试了试你的desktop api脚本,在ie,ff,chrome下都没有效果呢。在ff下调试报错:cannot create cross-origin shortcuts,能否赐教那里出了问题?

  24. Duet G. Says:

    抱歉是因为WP-Syntax插件升级了,而且用法也改变了,所以没能显出来。

  25. Duet G. Says:

    抱歉啊,这个是去年弄得东西,而且当时认为将来会在桌面图标上显示网站文章的更新数目,所以就研究了一下。现在已经忘得差不多了,并且由于执行效率问题,所以也已经从我的Blog上移除了。另外,Gears应该也升级了吧,不知道用法是否发生了变化,还请您自行前往Gears的官方站看文档吧,那个写的比我清楚多了。

Leave a Reply