美文网首页
chrome扩展开发整理以及那个学习

chrome扩展开发整理以及那个学习

作者: Rejiu泡泡糖 | 来源:发表于2018-12-17 15:50 被阅读0次

    顾名思义,chrome扩展,就是chrome浏览器的扩展。

    chrome扩展,是使用chrome本身api开发的工具。
    chrome插件,我没记错的话是基于webkit内核NPAPI (新版本是PPAPI)开发出来的工具。
    本质上二者好像就不一样。

    先来BB一下大体构成。后面详细。

    • manifest.json 个人理解嘛,这玩意儿就和package.json差不多,就是配置文件。后面BB这个的api。

    • background 这个东西,就是和chrome打交道的了。叫后台页面。就是告诉chrome你是要干啥,你是要持续运行的后台页面呢,还是就是一个单纯的事件页面呢。

    • popup 如果你需要操作这个拓展程序,那就需要这个东西了。这个是一个纯web页面。

    • Content scripts -- 内容脚本,就是连接background和popup的媒介。

       popup告诉内容脚本要干啥。内容脚本让background去干啥。
      
    看清楚

    manifest的api来了(没错,就是mani,不是main)

    {
        //必须得有的
        "manifest_version" : 2, //这里  是且只能是2   api里只有2,姑且这么认为
        "name" : "nicaicai", //就是你这个chrome拓展叫啥
        "version" : "1.0.0",  //你这个拓展的版本
    
        //最好是有的
        "default_locale" : "zh_CN", //这个拓展是给哪国人看的
        "description" : "介绍一下这个拓展是干啥的",
        
        //爱有没有,有就有一个
        "browser_action":{
            //扩展再浏览器右上角那个小图标
            "default_icon": "img/icon.png",
            // 鼠标在图标悬停时的标题,想要就要,不想要就拉倒
            "default_title": "什么玩意儿的扩展",
            //这个扩展的首页,根据目录结构来。
            "default_popup": "popup.html"    
        },
        //下面这个和上面最好活一个,不要都活下来
        "page_action":{
            "default_icon": "img/icon.png",
            "default_title": "爱啥啥",
            "default_popup": "popup.html"
        },
    
        //下面这些就随意发挥了
        "action" : "我不知道是干啥的",
        "author" : "谁干的(肯定句)",
        "automation" : "上一句的上一句",
    
        //敲黑板。这个是长驻在后台执行的东西
        "background"  : {
          //  用js的形式,会自动生成一个后台页面
            "scripts": [
                "js/background.js"//目录就是上面的那个background.js在你本地项目里的目录地址
            ]
      
            //或者,二者活一个
            "page": "background.html"
        },
        // 需要直接注入页面的JS
        "content_scripts": 
        [
            {
                //"matches": ["http://*/*", "https://*/*"],
                // "<all_urls>" 表示匹配所有地址
                 //下面这种写法也可以,matches后面是数组或者string就可以
                  // "http://*/",
                  //  "https://*/",
                  // "http://*/*",
                  // "https://*/*"
                
                "matches": ["<all_urls>"],
                // 如果有好几个js的话,就按顺序注入
                "js": ["js/jquery-1.8.3.js", "js/content-script.js"],
               // js如果没有啥依赖的,可以随便顺序
              //  css最好按照顺序来,免得覆盖
                "css": ["css/index.css"],
                // 代码注入的时间,可设置的值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
                "run_at": "document_start"
            }
        ],
         //再敲一次黑板,如果你要用chromeAPI中的一些东西,要在这里列出来你要用的‘权限’。可以使用的有很多,不一一举例了。
        "permissions" : [
            "contextMenus", // 右键菜单
            "tabs", // 标签
            "http://*/*",
            "https://*/*"
        ]
    }
    

    以上这些,基本上够用0.0 如果有特殊需求,可以自己找api里你需要的。英语不好,有些不知道怎么解释。
    都是授予对chrome.xxxapi的扩展访问权限

    咳咳。大体api说一下,下面再BB点我觉得有用的。。。。
    开发过程中,在background.js页面里,可以使用一些chrome.xx.xx这种语法来绑定相关事件

    // 接收消息
    chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
        if (request.result) {
            sendResponse({
                farewell: "ok"
            });
        }
    
        localStorage.setItem("key", request.msg);
    });
    

    "scripts": ["js/background.js"]这里就是接受信息的js。

    在content 页面里

    // 发送消息
    chrome.runtime.sendMessage(
        {
            msg: '从 Content Script 向 事件页面 传递消息',
            result: 1
        },
        function(response) {
            if (response && response.msg) {
                console.log(response.msg);
            }
        }
    );
    

    这个js文件相当于是入口js文件,要在你的"default_popup": "popup.html"这里对应的html中引入。

    以上就是大体操作,总之,用到chromeAPI里的,需要传递的就要在内容页面里发送,在持续在后台执行的js中接受。这样才能实时满足你。

    那么,开发完了,如果想让更多人使用要怎么做呢?


    登录到 Chrome 开发者信息中心,以便你可以发布到Chrome应用商店。

    首先,你需要有一个 Google 帐号,去注册一个。
    然后打包成*.zip,上传上去。
    但是,这个上传是需要收费的。。。
    chrome会索要 5刀 的开发者注册费用,给钱之后,你可以上传20个扩展了。。
    PS:貌似得用visa卡才能支付

    如果只是小范围内使用,可以直接打包发送出去,使用者添加到chrome扩展就好了。

    本文仅供学习笔记使用。。。无抄袭之意、、、欢迎纠错。。。

    补一句,开发过程中修改backgroundcontent Script的时候,要移除扩展再次添加,才有效,类似于popup页面的css、js,刷新就有效。

    相关文章

      网友评论

          本文标题:chrome扩展开发整理以及那个学习

          本文链接:https://www.haomeiwen.com/subject/lgdghqtx.html