Chrome擴展插件流程

1、瀏覽器插件基礎步驟:javascript

一、文件最基礎的配置 :css

一個manifest文件、一個或多個html文件、可選的一個或多個javascript文件、可選的任何須要的其餘文件,例如圖片;在開發應用(擴展)時,須要把這些文件都放到同一個目錄下。發佈應用(擴展)時,這個目錄所有打包到一個應用(擴展)名是.crx的壓縮文件中。若是使用Chrome Developer Dashboard,上傳應用(擴展),能夠自動生成.crx文件。html

二、建立應用:java

建立配置文件:manifest.json(關於版本信息等基礎配置) 圖標文件;jquery

三、加載擴展: 在菜單欄選擇更多工具,打開擴展程序,選擇開發者模式,點擊「加載已解壓的擴展程序(載入正在開發的擴展程序)」按鈕,選擇擴展文件所在的目錄文件,若是擴展應用正確,圖標就會顯示在地址欄右側;web

2、詳細解釋manifest.json文件配置:chrome

每個擴展、可安裝的WebApp、皮膚,都有一個JSON格式的manifest文件,叫manifest.json,裏面提供了重要的信息 。最基礎的文件,也是最重要的文件。配置關於項目的相關信息:版本、名稱、描述、圖標等;json

字段說明
   如下是三個必填的字段:

manifest_version:manifest文件內容格式的版本,目前版本爲2,本次介紹的格式都是基於該版本的.
 
version:該瀏覽器插件的版本。
 
name:該瀏覽器插件的名稱。

可選擇的字段:

description:該瀏覽器插件的描述信息;
icons:一個或者多個圖標來表示擴展;
browser_action:用 browser actions 能夠在chrome主工具條的地址欄右側增長一個圖標。做爲這個圖標的延展,一個browser action圖標還能夠有tooltip、badge和popup。 瀏覽器插件的工具欄圖標。和名稱 eg: "browser_action" : { "default_icon": "icons/browser_action_24.png", "default_title": "__MSG_extensionName__" }
permissions:瀏覽器插件須要的權限,支持正則匹配;
background:瀏覽器插件後端程序,大部分瀏覽器插件api,以及https網站都須要後端程序來完成。如:獲取瀏覽器插件的版本號。
背景頁是一個運行在擴展進程中的HTML頁面。它在你的擴展的整個生命週期都存在,同時,在同一時間只有一個實例處於活動狀態。 "background" : { "persistent" : false, "page": "background.html" //自定義背景文件 }, "background": { "scripts": ["background.js"] // 由定義的js文件自動生成背景文件, }

content_scripts:頁面注入配置。例如:向域名爲xx的注入一串輸出hello world的腳本,就須要該配置,同時也須要配置擁有該域名xx的權限。
是在Web頁面內運行的javascript腳本。經過使用標準的DOM,它們能夠獲取瀏覽器所訪問頁面的詳細信息,並能夠修改這些信息。

 

詳情能夠查看文檔字段解釋:後端

http://open.chrome.360.cn/extension_dev/manifest.htmlapi

 

3、舉個栗子:

manifest.json文件配置:
{
    "name": "第一個擴展",//該插件的名稱
    "version": "1.0", //該插件的版本
    "manifest_version": 2, //文件內容格式的版本,目前版本爲2,本次介紹的格式都是基於該版本
    "description": "擴展", //該插件的描述信息
    "background": { //運行在擴展進程中的HTML頁面,通常背景頁不須要任何HTML,僅僅須要js文件,瀏覽器插件後端程序,大部分瀏覽器插件api,以及https網站都須要後端程序來完成。如:獲取瀏覽器插件的版本號。
        "scripts": ["background.js"]
    },
    "permissions": [//內容腳本能夠做用到模式匹配定義好的URL集合上
        "http://*/",
        "http://*/*",
        "https://*/",
        "https://*/*",
        "bookmarks",
        "contextMenus",
        "activeTab",
        "storage",
        "tabs",
        "cookies"
    ],
    "icons": {//一個或者多個圖標來表示擴展。提供一個128x128的圖標將在webstore安裝時候使用。48x48的圖標擴展管理頁面須要。提供16x16的圖標做爲擴頁面的fa網頁圖標,還將顯示在實驗性的擴展infobar特性上。
        "16": "img/icon-16.png",
        "24": "img/icon-32.png",
        "48": "img/icon-48.png",
        "64": "img/icon-64.png",
        "128": "img/icon-128.png"
    },
    "browser_action": {//工具欄展現的圖標相關信息
        "default_icon": "img/icon.png",
        "default_title": "測試標題",//hover時出現的標題
        "default_popup": "popup.html"
    }
}

popul.html:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>Getting Started Extension's Popup</title>
		<style type="text/css">
			body{
			    width: 110px;
			    overflow-x: hidden;
			}
			p,h2{
				text-align: center;
			}
		</style>
	</head>
	<body>
		<div id="demo">
		</div>
		<script src="js/jquery-1.10.1.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="popup.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>

 popup.js文件:

$(document).ready(function(){
    var details = chrome.app.getDetails();
    var html = "<p><img src='"+details.browser_action.default_icon+"'></p>"+
            "<h2>"+details.name+"</h2>"+
            "<p>版本:v"+details.version+"</p>"+
            "<p>做者:simbaLS</p>"+
            "<p>@copyright 2018</p>";
    $("#demo").html(html);
});

效果如圖:

 

 

 

 4、打包擴展應用:

 

 

 

相關文章
相關標籤/搜索