1. 程式人生 > >Chrome外掛開發之manifest.json

Chrome外掛開發之manifest.json

最近做“一鍵儲存網頁為PDF”過程中,對Chrome外掛的開發也有些心得,在這裡分享給大家。

在這裡我將我用我外掛作為例子給大家講解,雖然我這篇文章是講manifest.json檔案,不過在這過程中會同時介紹一些相關的東西。

整個Chrome外掛開發最核心的就是manifest.json,熟悉了它,其它的都很容易了。

首先看我的外掛的manifest.json檔案:

{
  
	"manifest_version": 2,
  
	"name": "儲存網頁為PDF",
  
	"version": "1.1.7.80",
  
	"description": "儲存網頁為PDF【作者:塗劍凱,郵箱:
[email protected]
】", "icons":{"16":"Images/16.png","48":"Images/48.png","128":"Images/128.png"}, "background": { "page": "background.html" }, "options_page": "options.html", "browser_action": { "default_icon": "Images/16.png", "name": "儲存網頁為PDF" }, "permissions": [ "tabs", "http://localhost:9240/", "activeTab", "notifications","storage","http://*/" ], "update_url": "http://localhost:9240/SaveService/GetUpdateXML" }

必須屬性:name、version、manifest_version

1、name 顧名思義就是你的外掛的名稱;

2、version 指你的外掛的版本號;

3、manifest_version 指定清單檔案格式的版本,在Chrome18之後,應該都是2,所以這個值直接設定為2就OK了;

推薦屬性:description、icons、default_locale 

1、description 外掛描述,簡單介紹外掛用途;

2、icons 外掛圖示,需準備16*16(擴充套件資訊欄)、48*48(擴充套件管理頁面)、128*128(用在安裝過程中)的三個圖示檔案,建議為PNG格式,因為PNG對透明的支援最好;

3、default_locale 國際化支援,支援何種語言的瀏覽器,雖然官方推薦,不過我沒用;

background

這是一個比較重要的屬性,如果你需要執行一些後臺指令碼,比如監聽使用者在擴充套件資訊欄按下你的外掛圖示,或者你要監聽使用者新建tab頁,這個時候你就需要有一個background的頁面。background你可以指定一個HTML頁面(如我的外掛),也可以指定一個JS檔案,如:

{
  "name": "My extension",
  ...
  "background": {
    "scripts": ["background.js"]
  },
  ...
}
View Code

需要注意兩點:

1、是HTML不能寫JS程式碼,JS程式碼需要寫到JS檔案中後引入;

2、不能使用jquery(沒有詳細測試,可能是我沒用正確);

監聽使用者在擴充套件資訊欄按下你的外掛圖示時,顯示當前活動頁的URL:

chrome.browserAction.onClicked.addListener(function (tab) {
alert(tab.url);
});
View Code

options_page

options_page指定你的外掛設定頁面,這個看個人需求而定,可以不設定。

需要注意兩點:

1、你需要將JS寫到一個JS檔案中後引入;

2、不能有HTML元素的內聯事件(<button onclick="...">),你需要通過JS給HTML元素繫結事件如:

$(document).ready(function () {
    $("#btnOpenSetting").click(function () {
        OpenSetting();
    });
});
View Code

browser_action

browser_action可以設定擴充套件資訊欄的圖示、圖示懸浮提示、點選圖示是彈出視窗(我的外掛不需要彈出視窗所以未設定);

給大家看一個完整例子:

{
  "name": "My extension",
  ...
  "browser_action": {
    "default_icon": {                    // optional
      "19": "images/icon19.png",           // optional
      "38": "images/icon38.png"            // optional
    },
    "default_title": "Google Mail",      // optional; shown in tooltip
    "default_popup": "popup.html"        // optional
  },
  ...
}
View Code

permissions

permissions對於manifest.json來說雖然不是必要屬性,但是對於我們開發外掛來說卻是必要的manifest.json,我們總要向chrome申請點許可權,才能完成我們的外掛;

這裡我就只介紹我的外掛裡面用到的許可權(當然其實有點許可權我最後也沒用):

"tabs", 訪問瀏覽器選項卡
"http://localhost:9240/", AJAX訪問localhost:9240的許可權
"activeTab", 獲取當前活動選項卡
"notifications", 瀏覽器通知(基於HTML5的通知實現)
"storage", 儲存,希望儲存一些設定的話,就需要用到
"http://*/" 訪問任意域名的許可權

update_url

update_url指定自動更新地址,如果你是通過chrome官方釋出外掛,這個屬性不需要設定;但如果跟我一樣通過非官方釋出,這個屬性就很巴適了;你只需要第一次拖拽安裝外掛,以後都能自動更新了。這裡給一個update_url需要返回的資料格式例子:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>
View Code

manifest.json就介紹到這裡。

最後給大家看一個小例子

解壓檔案,使用chrome訪問 chrome://extensions/,勾選開發者模式,點選載入正在開發的外掛,選擇解壓目錄即可。

參考:

相關推薦

Chrome外掛開發manifest.json

最近做“一鍵儲存網頁為PDF”過程中,對Chrome外掛的開發也有些心得,在這裡分享給大家。 在這裡我將我用我外掛作為例子給大家講解,雖然我這篇文章是講manifest.json檔案,不過在這過程中會同時介紹一些相關的東西。 整個Chrome外掛開發最核心的就是manifest.js

chrome 外掛開發 ip地址顯示

1. 前言 2. 流程 2.1 編寫manifest.json 主要編寫外掛的一些配置, 版本號, 名字, 用到的圖示, 相應的popup.html, 跨站請求許可等。 { "manifest_version": 2, "

chrome外掛開發除錯

我們這次需要關心的有“Elements”、“Sources”和“Console”這三個標籤。Elements是用來做DOM分析的,功能有點類似Firebug,幫助我們分析頁面的內容;而Sources,是我們用來除錯javascript的;Console則是我們的Log的輸出視窗,也是一個除錯利器。 除錯C

微信小程序開發拼接json數組字符串

文件 mage 字符 小程序開發 var items lis 2-0 png 直接上代碼 : var imageitem; var imageitemstring=‘‘; for(var i=0;i< that.data.fbimages.length

chrome外掛開發(二) 入門篇(content script

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

chrome 外掛開發中的熱更新問題

原文連結:github.com/lzwaiwai/bl… 1. chrome外掛開發時,熱更新不完全生效發現問題 在編寫 chrome 外掛開發模板 的時候,遇到了 webpack 的 熱更新不完全生效 的問題。 不生效情景: 當 chrome 外掛的 manifest.json 中的 back

Chrome外掛開發入門:如何實現一鍵上班賴皮

很多人介紹過Chrome外掛,但必須要說,外掛開發就是擺弄一個小玩具,第一要素是實用,其次是好玩。 單純羅列各種功能是非常無趣的。 所以把一篇舊文拿出來與大家分享。 人,活著就是為了賴皮。 作為一個合格的開發人員,把30%的時間用來賴皮(上班偷懶)是值得推薦的。 因為,如果你工作時間無法賴皮,

Chrome外掛開發先看這篇:如何實現一鍵上班賴皮

今天看有人發文章專門介紹Chrome外掛,我必須要說,外掛開發就是一個擺弄一個小玩具,第一要素是實用,其次是好玩。 單純羅列各種功能是非常無趣的。 所以把一篇舊文拿出來與大家分享。 人,活著就是為了賴皮。 作為一個合格的開發人員,把30%的時間用來賴皮(上班偷懶)是值得推薦的。 因為,如果你工

[Vue CLI 3] 外掛開發 registerCommand 到底做了什麼

首先,我們看到在 package.json 中有 scripts 的定義: "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint"} 我們

chrome外掛開發(轉)

作者原文:https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html 寫在前面 我花了將近一個多月的時間斷斷續續寫下這篇博文,並精心寫下完整demo,寫部落格的辛苦大家懂的,所以轉載務必保留出處。本

入門chrome外掛開發教程和經驗總結,一篇就搞掂!

前言 關於chrome extension的開發經驗總結或說明文件等資料很多,很多人在寫,然而,我也是一員。但是,也許這篇文章,可能給你一些不一樣的感受。 這裡介紹的是80%你要開發擴充套件會碰到的問題 前面部分大多數是一些基礎介紹,和別人的資料大同小異,但是用的是通俗的語言或者我自

Eclipse外掛開發jgit下載與更新程式碼

Eclipse外掛開發之jgit下載與更新程式碼                     &nb

Eclipse外掛開發新建嚮導

Eclipse外掛開發之新建嚮導                                      

Chrome外掛開發,美化網頁上的檔案列表。chrome-extension,background

上一篇文章 通過“content-scripts”的方式向頁面注入js和css來美化頁面,但是有一個弊端:一旦配置好需要注入的頁面,如果這個頁面地址以後發生變化,或者要新加一些URL進來,那麼得修改manifest.json這個檔案。試想如果一個Chrome外掛已經打包好,再去改程式碼是不可能的。

vue外掛開發-vue.use()的原始碼分析。

vue是一個漸進式框架,它本身的核心是解決檢視渲染的問題,其它的能力就通過外掛的方式來解決。今天我們來看下vue是如何支援框架的。也就是vue.use這部分的實現。 下面我們以vue-router為例來進行說明, import VueRouter from 'vue-router' Vue.use

Chrome外掛開發

編寫chrome外掛之前,需要熟悉一下相應的chrome外掛開發環境。 在chrome中編寫外掛和寫網頁應用基本一致,採用的是javascript+css+html的方式,所以對於用過chrome瀏覽器審閱過一些網頁的原始碼,寫過網頁或者指令碼的人而言,編寫c

關於chrome外掛開發(二)

本週主要針對chrome瀏覽器的外掛開發進行了細緻化的研究. 首先,對於chrome,我們從跨域請求、操作頁面DOM節點、常駐後臺、頁面間的通訊和cookie的管理這五個方面進行了研究和程式設計,開發出了實現這些功能的chrome外掛。現在我對這幾個方面的重點知識做一總結:

JS外掛開發LightBox圖片畫廊

工程目錄結構圖: lightBox.js封裝了寫好的外掛,直接匯入即可,這裡就不在詳細解釋程式碼了,主要介紹一下怎麼運用該外掛,下載地址:http://download.csdn.net/detail/u012612399/9373624 如果要相容IE

IntelliJ Idea外掛開發新增自定義庫(Library)

在一些程式碼工程沒有用ivy,maven這些庫檔案管理工具,jar包要麼和工程檔案放在一起或是存在本地的目錄中然後通過開發工具匯入。還有一種就是庫檔案打包在中介軟體中,開發時需要引入,不方便用ivy,maven進行依賴管理,這時候可能就需要開發一個IntelliJ Idea外

chrome外掛開發-----------將網址轉化成二維碼website2QRcode

微信自帶的瀏覽器無法輸入連結,只能通過掃描二維碼實現,但是有時候看到一個有趣的網站,想分享,還得先去將連結轉化成二維碼的網站,先轉成二維碼,再掃描,有點麻煩。所以寫了一個外掛,直接生成二維碼。      需要引用的檔案:jquery.qrcode.js(將文字轉化成二維碼)