首页 > 其他分享 >google浏览器插件开发

google浏览器插件开发

时间:2024-04-28 17:35:27浏览次数:16  
标签:info 插件 google 浏览器 chrome storage system 存储设备

项目结构

在开发Chrome插件时,以下几个文件的作用如下:

  1. manifest.json:这是Chrome插件的清单文件,用于配置插件的基本信息、权限、页面跳转等。其中包括插件的名称、版本号、图标、后台脚本、浏览器动作等信息。

  2. background.js:这是Chrome插件的后台脚本文件,用于处理插件的后台逻辑。可以监听事件、与浏览器进行交互、执行一些后台任务等。在manifest.json中指定了background脚本后,它会在插件加载时自动运行。

  3. popup.html:这是Chrome插件点击后弹出的界面的HTML文件。可以定义插件弹出页面的结构、样式和交互逻辑。

  4. popup.js:这是Chrome插件弹出页面的JavaScript文件,用于定义插件弹出页面的交互逻辑。在popup.html中引入popup.js,可以实现点击插件按钮后弹出页面的功能。

以上文件各自承担不同的角色,在Chrome插件开发中起着重要的作用。合理地编写和组织这些文件可以帮助你实现所需的功能并提升用户体验。希望这些解释对你有所帮助。

manifest.json(v2版本)

{
  "manifest_version": 2,
  "name": "lind-kc",
  "version": "1.0.1",
  "description": "lind-kc-pid",
  "author": "lind",
  "permissions": [
    "tabs",
    "<all_urls>",
    "webRequest",
    "webRequestBlocking",
    "storage",
    "cookies",
    "system.cpu",
    "system.memory",
    "system.storage",
    "system.display"
  ],
  "browser_action": {
    "default_icon": "icon-16.png",
    "default_title": "点击登录系统"
  },
  "background": {
    "scripts": [
      "background.js"
    ],
    "persistent": true
  },
  "web_accessible_resources": [
    "popup.html",
    "popup.js"
  ]
}

popup.html和popup.js

如果没有自定义表单,点图标就执行插件,这块就不需要了。

background.js

这是核心代码,控制浏览器的行为,比如拦截请求,修改请求头,修改响应头,修改响应内容等等。

// 监听消息
chrome.browserAction.onClicked.addListener(function (tab) {
    // 在这里处理收到的登录消息
    var machine = [];
    chrome.system.cpu.getInfo(function (info) {
        machine.push(info.archName);
        machine.push(info.numOfProcessors);
        machine.push(info.modelName);
        chrome.system.memory.getInfo(function (memory) {
            machine.push(memory.capacity);
            chrome.system.display.getInfo(function (dis) {
                var diss = "";
                dis.forEach(function (d) {
                    machine.push(d.id);
                });
                chrome.system.storage.getInfo(function (storageInfo) {
                    var storages = "";
                    storageInfo.forEach(function (storage) {
                        machine.push(storage.id);
                    });
                    chrome.cookies.set({
                        url: "https://cas.xxx.com/auth/",
                        name: "kc-token",
                        value: machine.join("_"),
                        domain: ".xxx.com",
                        path: "/",
                        secure: true,
                        httpOnly: true,
                        expirationDate: Math.floor((new Date().getTime() / 1000) + 3600) // 设置cookie过期时间
                    });

                });
            });

        });
    });
});

获取客户硬件信息

  1. chrome.system.memory:用于获取系统内存信息,如总内存量、可用内存量等。

  2. chrome.system.storage:用于获取存储设备(如硬盘、U盘)的信息,包括容量、可用空间等。

  3. chrome.system.display:用于获取显示器信息,如分辨率、缩放比例等。

  4. chrome.system.network:用于获取网络信息,如网络连接状态、IP地址等。

  5. chrome.system.power:用于获取电源信息,如电池状态、剩余电量等。

这些API可以帮助开发者在Chrome插件中获取硬件相关的信息,以便实现更丰富的功能和用户体验。在使用这些API时,同样需要在manifest.json文件中声明相应的权限,例如:

{
  "permissions": [
    "system.memory",
    "system.storage",
    "system.display",
    "system.network",
    "system.power"
  ]
}

通过合理地利用这些硬件信息接口,你可以为你的Chrome插件添加更多实用的功能,提升用户体验。如果有特定的硬件信息需求,建议查阅官方文档以获取更详细的信息和使用方法。

当使用Chrome Extension API中的chrome.system.memorychrome.system.storage模块来获取客户端硬盘和内存的详细信息时,可以参考以下属性和方法:

chrome.system.memory

  • chrome.system.memory.getInfo():获取系统内存信息。
    • capacity:系统总内存容量(以字节为单位)。
    • availableCapacity:系统可用内存容量(以字节为单位)。

示例代码:

chrome.system.memory.getInfo(function(info) {
    console.log('总内存容量:', info.capacity);
    console.log('可用内存容量:', info.availableCapacity);
});

chrome.system.storage

  • chrome.system.storage.getInfo():获取存储设备信息。
    • id:存储设备的唯一标识符。
    • name:存储设备的名称。
    • type:存储设备类型(如固态硬盘、机械硬盘等)。
    • capacity:存储设备总容量(以字节为单位)。
    • availableCapacity:存储设备可用容量(以字节为单位)。

示例代码:

chrome.system.storage.getInfo(function(storageInfo) {
    storageInfo.forEach(function(info) {
        console.log('存储设备ID:', info.id);
        console.log('存储设备名称:', info.name);
        console.log('存储设备类型:', info.type);
        console.log('存储设备总容量:', info.capacity);
        console.log('存储设备可用容量:', info.availableCapacity);
    });
});

通过以上属性和方法,你可以在Chrome插件中获取到客户端硬盘和内存的详细信息,并根据需要进行相应的处理和展示。如果需要更多关于这些API的信息,建议查阅官方文档以获取更全面的指导。

标签:info,插件,google,浏览器,chrome,storage,system,存储设备
From: https://www.cnblogs.com/lori/p/18164149

相关文章

  • 通过fatsadmin阿里云OSS存储插件-生成二维码图片,并上传阿里云OSS存储空间里
    #生成二维码并上传到阿里云OSSif(!function_exists('create_qrcode')){functioncreate_qrcode($url){$filename=time().rand(100,999).'.png';$path='uploads/qrcode/'.$filename;$code=newQRcode();$......
  • Quick Go To Selected File Path - 快速路径跳转 - vscode 插件推荐
    QuickGoToSelectedFilePath-快速路径跳转-vscode插件推荐差个插件的快捷键是Ctrl+E一直找一个鼠标点就过去的,一直没找到比较通用的,这个算是比较不错的~QuickGoToSelectedFilePathhttps://marketplace.visualstudio.com/items?itemName=duXing.quick-go-to-s......
  • 无网络安装插件
    无网络安装插件1、准备外网电脑,搭建所需python插件2、将需要导出的插件,导出列表pipfreeze>.\req.txt3、将插件导出到目录pipdownload-r.\req.txt-d.\pkg4、将req.txt文件和pkg目录拷入无网络电脑5、在无网络电脑安装,进入到.\python\Scripts目录下,管理员运行......
  • idea插件之apifox自动化测试
    /***测试apifox插件自动化读取*/@RestController@RequestMapping("/api")publicclassSwaggerApiFoxController{/***这是一个测试方法*@return*/@RequestMapping("/test")publicStringtest(){return"test";}}1......
  • 检测浏览器是否是处于开发模式、禁用F12和右键
    <script>functionisDevModel(){//阻止F12,Ctrl+Shift+Idocument.addEventListener('keydown',function(event){if((event.ctrlKey&&event.shiftKey&&event.keyCode==7......
  • 一文搞懂drag&drop浏览器拖放功能的实现
        拖放功能,即将一个元素从一个区域,通过拖拽,放置到另一个区域。常见的应用是将文件或图片从一个区域,拖放到另一个区域。中文常常把这表述成拖拽,实际上拖拽的描述并不准确,应该叫拖放,因为drag事件和drop事件是成对使用的,即拖拽和放置。    drag在拖拽动作发生时触发......
  • threejs 浏览器窗口resize变化 自适应 html 全屏
    全屏:画布全屏和body页面全屏;//导入threejsimport*asTHREEfrom"three";import{OrbitControls}from"three/examples/jsm/controls/OrbitControls.js";//创建场景sceneconstscene=newTHREE.Scene();//console.log(scene,'scene');//......
  • PropertyChanged.Fody自动通知属性插件
    NuGet安装安装 PropertyChanged.FodyNuGet包并更新FodyNuGet包:InstallthePropertyChanged.FodyNuGetpackage andupdatethe FodyNuGetpackage:PM>Install-PackageFodyPM>Install-PackagePropertyChanged.Fody 这是必需的,因为NuGet始终默认为任何依......
  • selenium中打开浏览器页面总是闪退
    代码如下:fromseleniumimportwebdriverbrowser=webdriver.Chrome()browser.get("http://www.baidu.com")#打开百度执行完后谷歌浏览器打开了,也没有报错,但会闪退,想要在页面查看需要定位的元素无法查看;这是因为selenium默认执行完所有代码后,会退出浏览器,并没有报错,不......
  • notepad++ 安装compare文件对比插件&失败解决办法
    1.首先notepad++安装compare方法:在菜单栏点击“插件”》插件管理   搜索:compare 点击YES 因为国内网络原因,可能会安装失败,也可能安装比较久。2.自己解压安装:  下载解压包:链接:https://pan.baidu.com/s/1B8hZJCJ8PLZgwdYzQeWGpQ提取码:7n2s  点击打开插件......