资讯专栏INFORMATION COLUMN

chrome扩展开发之旅 第五篇

NotFound / 2522人阅读

摘要:目录结构下载网络请求代理系统信息本章讲解的是部分较为高级的,以供哪些有更高要求的读者阅读。对于目前的网络请求,笔记实用的功能包括阻断链接,更改和重定向。系统信息声明方法三个接口都提供了的方法

目录结构

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()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78513.html

相关文章

  • 以太坊智能合约开发五篇:字符串拼接—Solidity

    摘要:原文发表于以太坊智能合约开发第五篇字符串拼接上一篇,我们实现了一个简单的智能合约。在文章最后抛出了一个问题如果我们事先在合约里定义好字符串,如何与变量进行字符串拼接在智能合约里进行字符串的拼接可不是一件简单的事情。 原文发表于:以太坊智能合约开发第五篇:字符串拼接—Solidity 上一篇,我们实现了一个简单的智能合约。用户输入什么字符串,合约就原样返回什么。在文章最后抛出了一个问题...

    cangck_X 评论0 收藏0
  • SpringBoot非官方教程 | 五篇:SpringBoot整合 beatlsql

    摘要:整合阶段由于没有对的快速启动装配,所以需要我自己导入相关的,包括数据源,包扫描,事物管理器等。另外它的中文文档比较友好。源码下载参考资料中文文档 BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 beatlsql 优点 开发效率 无需注解,自动使用大...

    microelec 评论0 收藏0
  • 【PWA学习与实践】(5)在Web中进行服务端消息推送

    摘要:本文是学习与实践系列的第五篇文章。实际上,消息推送与提醒是两个功能和。在这一篇里,我们先来学习如何使用进行消息推送。而当服务端要推送消息时,会使用私钥对发送的数据进行数字签名,并根据数字签名生成一个叫请求头。 《PWA学习与实践》系列文章已整理至gitbook - PWA学习手册,文字内容已同步至learning-pwa-ebook。转载请注明作者与出处。 本文是《PWA学习与实践》系...

    suemi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<