最近在参加 360大学生应用开发大赛,跟团队做了一个小小的扩展,这是自己第一次系统的开发一个 Chrome 的扩展。之前都是按照网上的例子照写的。其中就遇到几个问题,和大家分享一下。

先简单介绍下我开发的扩展吧,是一个二维码的应用,使用这个应用可以将网页的地址,页面上面的文字,页面上面图片的网址或者页面上面的链接地址快速的转换为二维码,然后使用手机的二维码扫描软件方便的在手机上面查看和下载,这个插件的下载地址:全能二维码

说说开发中遇到的问题吧。首先就是刚接触开发,然后对 Popup.html,background.html,还有 content 这几个的关系绕的。还是需要自己动手做起来,然后就会慢慢理清楚了,然后就是看 API 文档(开发文档),一步步将自己的想法逐步实现,一些实现细节在开发文档已经讲的很清楚了。

还有在开发中遇到的另一问题,就是函数参数中的回调函数,更深的理解了通过回调控制函数返回值和通过 return 返回值的区别,通过这次扩展的编写,对回调函数的认识尤其是在异步请求中的认识可能更深刻一些了吧。

最后一个问题,就是想通过扩展提供的 API 接口自动弹出 Popup 页面(这个页面需要显示二维码),而不是通过按钮的点击,具体实现就是添加的上下文菜单点击后弹出 Popup 页面,可能是自己想当然了,没有找到相应的接口,也没有在别的应用上面看到实现,而后来想了想,Popup 之所以存在就是要按钮点击的,最后的解决方案就是通过向页面注入代码实现显示二维码的。

最后说说自己的体会吧,最爽的可能就是脱离了兼容性问题了,多么美好的事情啊~不用为兼容各个内核的浏览器而去杀害脑细胞,第二个比较爽的问题就是跨域,同时也对跨域的理解更正了一下,以前一直想不通跨域怎么是浏览器端控制的,总觉的应该是服务器端控制的东西(虽然知道浏览器控制是正确答案),这次真正通过了 manifest 文件的权限控制理解了跨域问题的这个控制权在浏览器端。