vue开发chrome插件,实现获取界面数据和保存到数据库功能
前言
最近在评估项目时,要开启评估平台,查看平台和保存平台,感觉非常繁琐,开发了一款可以获取评估平台数据,查看项目排期和直接保存数据到数据库的chrome插件,由于我需要使用之前vue封装的一个日历插件,这里就用vue来开发这个插件。
开发前准备
要开发一个chrome插件,我们首先需要了解chrome插件的基本结构和对应的功能。
每个扩展的文件类型和目录数量有所不同,但都必须有manifest。一些基本但有用的扩展程序可能仅由manifest及其工具栏图标组成。
manifest.json
{ "name":"MyExtension",//"扩展名" "version":"2.1",//当前创建扩展版本号 "description":"GetsinformationfromGoogle.",//"扩展描述" "icons":{//扩展工具界面使用图标 "128":"icon_16.png", "128":"icon_32.png", "128":"icon_48.png", "128":"icon_128.png" }, "background":{//扩展常常用一个单独的长时间运行的脚本来管理一些任务或者状态 "persistent":false, "scripts":["background_script.js"]//后台常驻脚本,自动运行,直到关闭浏览器。可根据需求自行设置 }, "permissions":["https://*.google.com/","activeTab"],//开启拓展权限 "browser_action":{ "default_icon":"icon_16.png",//器右上角显示 "default_popup":"popup.html"/**鼠标移入,显示简短扩展文本描述**/ }, "content_scripts":[{//ontentscripts是在Web页面内运行的javascript脚本。通过使用标准的DOM,它们可以获取浏览器所访问页面的详细信息,并可以修改这些信息。 "js":["script/contentscript.js"],/**需要注入的脚本**/ "matches":[/**匹配网址(支持正则),成功即注入(其余属性自行查询)**/ "http://*/*", "https://*/*" ] }] }
vue开发chrome插件
我们需要使用vue来开发插件,几经搜索,查到一款样板,很方便我们进行vue开发插件,便引入该样板来进行开发。
引入vue-web-extension样板来实现vue开发
npminstall-g@vue/cli npminstall-g@vue/cli-init vueinitkocal/vue-web-extensionnew-tab-page
然后切换到项目目录安装依赖项
cdnew-tab-page npminstall
我们可以运行
npmrunwatch:dev
在项目根目录中会得到一个dist文件夹,我们直接安装解压的扩展程序,选择这个dist,就可以进行开发并监视更改。
样板文件的基本格式
├──dist │└──├──node_modules │└── ├──package.json ├──package-lock.json ├──scripts │├──build-zip.js │└──remove-evals.js ├──src │├──background.js │├──icons ││├──icon_128.png ││├──icon_48.png ││└──icon.xcf │├──manifest.json │└──popup │├──App.vue │├──popup.html │└──popup.js └──webpack.config.js
可以看出,样板文件使用webpack进行打包,
src文件夹包含我们将用于扩展的所有文件。manifest文件和background.js对于我们来说是熟悉的,但也要注意包含Vue组件的popup文件夹。当样板文件将扩展构建到dist文件夹中时,它将通过vue-loader管理所有.vue文件并输出一个浏览器可以理解的JavaScript包。
在src文件夹中还有一个icons文件夹。如果你看一眼Chrome的工具栏,会看到我们的扩展程序的新图标(也被称为browseraction)。这就是从此文件夹中拿到的。如果单击它,你应该会看到一个弹出窗口,显示“Helloworld!”这是由popup/App.vue创建的。
最后,请注scripts文件夹的两个脚本:一个用于删除eval用法以符合ChromeWebStore的内容安全策略,另一个用于当你要把扩展上传到ChromeWebStore时将其打包到.zip文件中。
在package.json文件中还声明了各种脚本。我们将用npmrunwatch:dev来开发扩展,然后使用npmrunbuild-zip生成一个ZIP文件以上传到ChromeWebStore。
创建插件界面
我们直接修改popup.html
popup.html
Title