当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

chrome扩展开发之旅 第五篇 - wilson's blog

作者:小梦 来源: 网络 时间: 2024-04-06 阅读:

目录结构

  • 5.1 下载

  • 5.2 网络请求

  • 5.3 代理

  • 5.4 系统信息
    本章讲解的是部分较为高级的API,以供哪些有更高要求的读者阅读。

5.1 下载

声明

  "permissions": [    "downloads"  ]

方法

  chrome.downloads.download({    url:,  //下载的url    filename:,  //保存的文件名    conflictAction:,  //重名文件的处理方式    saveAs:,  //是否弹出另存为窗口    method:,  //请求方式(post或get)    headers:,  //自定义header数组    body:,  //post的数据    }, callback)

conflictAction的值只能为uniquify(在文件名后面添加带括号的序号,以保证文件名唯一),overwrite(覆盖)或者prompt(给出提示,让用户自行决定是对文件进行重命名还是将其覆盖、)

5.2 网络请求

声明

"permissions": [  "webRequest",  "webRequestBlocking",  "*://*.google.com/"]

注意:webRequest接口无法在Event Page中使用。
对于目前的网络请求,笔记实用的功能包括阻断链接,更改header和重定向。

主要方法

    chrome.webRequest.onBeforeRequest.addListener(function(details){      return {cancel: true}},      {urls: ["*://bad.exemple.com/*"]},      ["blocking"])  //阻断所有想bad.exemple.com的连接     chrome.webRequest.onbeforeSendHeaders.addListener(       function(details){},{},[])

5.3 代理

声明

  "permissions": [    "proxy"  ]

方法

  • chrome.proxy.settings.set({},callback)

  • chrome.proxy.settings.get({},callback)

例子

  var config = {    mode: "fixed_servers",    rules: {      proxyForHttp: {        scheme: "socks5",        host: "1.2.3.4",        port: 1080      },  //所有的http协议的浏览都使用1.2.3.4:1080这个socks5代理      proxyForHttps: {        scheme: "socks5",        host: "1.2.3.4",        port: 1080      },  //所有的https协议的浏览都使用1.2.3.4:1080这个socks5代理      proxyForFtp: {        scheme: "http",        host: "1.2.3.4",        port: 80  //所有的http协议的浏览都使用1.2.3.4:80这个http代理      }      bypassList: ["foobar.com"]  //不使用任何代理    }  };  chrome.proxy.settings.set(    {value: config},    function(){}    );

另外,chrome还提供singleProxy属性(任何协议都要使用此代理)和fallbackProxy属性(未匹配到的协议使用此代理)。pacScript指定了代理访问所使用的pac脚本,因此可以通过url属性指定脚本位置,也可以直接通过data属性指定脚本内容。

5.4 系统信息

声明

"permissions": ["system.cpu","system.memory","system.storage"]

方法

三个接口都提供了getInfo的方法

  • chrome.system.cpu.getInfo()

  • chrome.system.memory.getInfo()

  • chrome.system.storage.getInfo()

热点阅读

网友最爱