[Chrome Extensions]從頭開始-第一個範例

開發工具:EmEdit

開發環境:Google Chrome Canary

第一次接觸 Chrome Extensions 當然是從官方的第一個範例開始,首先準備好一個習慣使用的文字編輯器,這邊採用的是 EmEdit,官方推薦的開發環境 Google Chrome Canary(另外一個版本的 Chrome 專門用來開發的環境,比較乾淨,不會與原本電腦已安裝的 Chrome 有所衝突),接著我們要上路了!!!

官方所提供的第一個範例是簡單的從 Flickr 抓取圖片,顯示在 Chrome's Omnibox,使用的是 browser action 的方式。畫面就像下圖一樣。

第一步:

編寫一個 manifest file manifest.json

這是一個 json 型態的純文字檔,內容如下

{

  "manifest_version": 2,

  "name": "One-click Kittens",

  "description": "This extension demonstrates a browser action with kittens.",

  "version": "1.0",

  "permissions": [

    "https://secure.flickr.com/"

  ],

  "browser_action": {

    "default_icon": "icon.png",

    "default_popup": "popup.html"

  }

}

manifest_version:這個 manifest 的檔案版本,通常 1 都是不公開的

name:Extension 名稱

description:描述

version:Extension 版本

permissions:宣告需要存取 https://secure.flickr.com/ 網站的權限

browser_action:使用這一個 Api Function

官方範例還有其他三個檔案,icon.png / popup.html / popup.js 因為是第一個範例,所以對內容不詳加描述,只求第一個範例完成,我有另外將必需的四個檔案打包好,可直接使用。

demo程式 One-click Kittens.7z (右鍵另開視窗下載)

全部都將其放在同一個目錄,然後打開 Google Chrome Canary 進入到 Extensions 的畫面(可直接在瀏覽器列上打 chrome://extensions/),確認是否進入了開發者模式(需打勾),如下圖:

接著點選 Load unpacked extension… 選擇檔案所在的目錄,選好確定了之後,就可以看到在瀏覽器上有多了一個我們自製的 Extensions,若完成之後,目錄當中的資料有做任何的修改,請執行該 Extensions 中的 Reload(Ctrl+R)的動作重新載入。

PS.要注意的是 popup.js 檔案中有一段是要取用 Flickr 的部份,如下:

  searchOnFlickr_: 'https://secure.flickr.com/services/rest/?' +

      'method=flickr.photos.search&' +

      'api_key=90485e931f687a9b9c2a66bf58a3861a&' +

      'text=' + encodeURIComponent(QUERY) + '&' +

      'safe_search=1&' +

      'content_type=1&' +

      'sort=interestingness-desc&' +

      'per_page=20',

上面標記紅色的部份是存取該api 所需要的授權,這部份要自己去作申請的動作:

網址:https://www.flickr.com/services/apps/create/apply/?

需要登入Yahoo 的帳號(不是詐騙,flickr是Yahoo的!!!!!),接著就直接進入申請一非商業使用的key

接下來的資訊就按照您的需求去填寫,之後會得到一組專屬於你的 key 跟 密鑰,這邊我們所需要的只有 key 而已,請將自己的 key 填到上述的 api_key 中(紅色部份)。

完成了!!!!恭喜進入 Chrome Extensions 的世界!!!!

延伸閱讀:

What are extensions?

Getting Started: Building a Chrome Extension (簡中版)

Chrome Extension Overview (簡中版)

Developer's Guide (簡中版)

chrome.* API docs (簡中版)

Developing Google Chrome Extensions

入門教學:

大兜的 Chrome Extension 學習筆記

Chrome Extension 入門 - 基本架構介紹 (2/?)

Chrome Extension 入門 - 背景執行緒 (3/?)

Chrome Extension 入門 - 彈出式頁面 (4/?)

Chrome Extension 入門 - 內文執行緒 (5/?)

Chrome插件(Extensions)開發攻略

進階:

Chrome Extension 進階 - debug

其他:

官方範例

Tutorial: Debugging (重要)