打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
chrome manifest

一、首先阐述下manifest_version的版本1与版本2的区别:

     1、不允许执行任何inline javascript代码(就是说在html内的任何JS代码都是非法的)

          解决方案 : 将html内的JS代码移除,放入单独JS文件内,将此文件添加到"background"内(下面实例将会说到)

     2、扩展程序包的资源默认情况下不再可用于外部网站(作为图片的src属性或者script标签)

          解决方案:可在mainfest.json文件中设置"web_accessible_resources"属性将可用于外部网站的资源加入白名单

     3、"background_page"属性需要更改为"background"属性

     4、Browser action一些改进:

         1)browser_actionschrome.browserActions API需要用browser_actionchrome.browserAction API替代

         2)browser_actions中的icons属性需要用default_icon属性或chrome.browserAction.setIcon替代

         3)browser_action中的name属性需要用default_title属性或chrome.browserAction.setTitle替代
         4)browser_action的popup属性需要用default_popup属性或 chrome.browserAction.setPopup替代
         5)browser_action的default_popup属性不能再指定为对象,而必须为“字符串”

     5、Page action一些更改:
         1)page_actions及 chrome.pageActions API需要用page_action、chrome.pageAction替代
         2)page_action中的icons属性需要用default_icon属性或 chrome.pageAction.setIcon替代
         3)page_action 中的 name 属性需要用 default_title 属性或 chrome.pageAction.setTitle替代
         4)page_action 中的 popup 属性需要用 default_popup 属性或 chrome.pageAction.setPopup替代
         5)page_action 中的 default_popup 属性不能再指定为对象,而必须为“字符串”
         6)chrome.self API需要用 chrome.extension替代
     6、chrome.extension.getTabContentses与 chrome.extension.getExtensionTabs需要用chrome.extension.getViews({ “type”: “tab” })替代
     7、Port.tab 需要用Port.sender替代

     原文可参考:https://developer.chrome.com/extensions/manifestVersion.html


   二、之后阐述一下Chrome基本框架:

     每个应用(扩展)都应该包含下面的文件:

  •     三、Chrome 刷论坛在线时间具体代码:

    manifest.json   

{  "name": "Keep Active in url",  "version": "0.2",  "manifest_version": 2,  "description": "Automatically keep a loginned user's status active in url.",  "icons": {    "48": "icon_48.png",    "128": "icon_128.png"  },   "background": {           "scripts": ["background.js"]        }, //区别版本1,这里需要把JS代码放入background.js文件中  "page_action": {    "default_title": "start",  	"default_icon": "icon_19.png"  },//只在匹配页面的URL框中显示插件图标    "permissions": [    "tabs"  ],  "content_scripts": [  {    "matches": ["http://XXXXXX/"],//自己需要的URL    "js": ["visit.js"]  }  ]}
       此处的代码都为固定格式配置选项,具体属性含义讲解请参见Chrome开发文档,或中文文档http://open.chrome.360.cn/extension_dev/manifest.html

      visit.js代码:

chrome.extension.sendRequest({},function(response) {});

此代码在获得匹配URL后,它的作用是向扩展程序管理者发送一个请求消息。这个消息将被background.html捕。

      background.js代码

var winid = 0;var tabid = 0;chrome.extension.onRequest.addListener(               function(request,sender,sendResponse){                       chrome.pageAction.show(sender.tab.id);                      chrome.windows.getCurrent(function(Win){                                winid = Win.id                      });                      circle();            });function circle(){      radomURL = "http://XXXXX/XXXXX?t=" + Math.floor(100000 + Math.random()*6000); //随机生成论坛网页代码,需要根据自己实际情况修改      chrome.tabs.create({windowId:winid,url: radomURL,selected:false},function(tab){tabid = tab.id});       chrome.tabs.remove(tabid);       setTimeout(circle,60000); }
          其中,chrome.extension.onRequest.addListener捕获前面visit.js传来的请求消息后执行。chrome.pageAction.show(sender.tab.id)在发送消息的tab上显示扩展程序图标。chrome.windows.getCurrent定位到当前的Chrome窗口,通过winid = Win.id获取当前窗口ID。接下来是一个函数circle(),它在要结束的时候延迟60秒调用自身,因而构成死循环。这个函数先生成一个指向论坛的随机的URL,然后在前面的这个窗口里创建一个新的标签chrome.tabs.create,并在里面打开这个随机URL,selected:false表明不选定这个标签,因而做到不影响用户的正常使用,同时用tabid = Tab.id获取创建的这个标签的ID,最后关闭这个标签。

      代码中的三个图标,尺寸分别为:19*19、48*48、128*128,这都是开发文档中要求的固定大小。本代码选用图标如下:

     

             
          


     四、Chrome扩展程序调试

     首先需要把我们编写好的manifest.json 、visit.js、 background.js、icon_19.png、icon_48.png、icon_128.png六个文件放入一个文件夹内。之后选择Chrome浏览器中扩展程序里的开发者模式,点击“加载正在开发的扩展程序”选中你的文件夹(本文我设定文件夹名称为Chrome Keep Active)将程序加载,如下图:


      

      之后,点击加载上的Chrome插件的“检查试图”就能打开Chrome调速器啦,如下图。


       

       在调速器下我们可以设置断点调试我们开发的插件,进而修改代码错误。


     五、发布扩展程序

       般来说,有如下两种发布方式:

     1、打包为crx文件发布

       命令行执行如下命令即可

chrome.exe --pack-extension="C:\Chrome Keep Active"

 执行完之后,就在Chrome Keep Active文件夹同级目录下生成Chrome Keep Active.crx和私钥文件Chrome Keep Active.pem,私钥文件用于升级软件时使用。
        重新发布时使用的命令行是:

chrome.exe --pack-extension="C:\Chrome Keep Active"  --pack-extension-key=“C:\Chrome Keep Active.pem”
生成的crx文件就用于发布,而私钥文件则自己保留。

     2、上传到Chrome Extension Gallary

        在https://chrome.google.com/extensions/developer/dashboard发布完成的扩展程序。上传时是传的扩展程序目录所有文件打包成的一个.zip文件(注意不是.crx)。上传中,不需要用到pem文件。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vue.js的项目实战
chromium相关问题集合
chrome打包程序
使用帮助
JWT Extensions
Chrome扩展开发指南(8)——Bookmarks(书签操作)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服