第2回 framgia × loupe 勉強会 「chrome extensionいじってみた話」

43
Chrome Extension いじってみた話 Framgia × LOUPE 勉強会 #2 2015.08.24. Engineer at LOUPE, Inc. Takuya Mukohira (mktakuya)

Upload: takuya-mukohira

Post on 13-Jan-2017

1.051 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome Extension いじってみた話

Framgia × LOUPE 勉強会 #2 2015.08.24.

Engineer at LOUPE, Inc. Takuya Mukohira (mktakuya)

Page 2: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome Extension

Page 3: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome

Extension

Page 4: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome

Extension

↑ Webブラウザ

↓ 拡張機能

Page 5: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

便利なブラウザChromeを

Page 6: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

思い通りに拡張する方法

Page 7: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 8: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome Extensionは 大きく分けて 3種類

Page 9: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

大きく分けて3種類

• Browser Action

• Page Action

• Context Menu

Page 10: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Browser Action

Page 11: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Page Action

Page 12: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Context Menu

Page 13: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 14: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

最小限の Chrome Extension

Page 15: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

最小限の Chrome Extension

• iconを用意する

• manifest.jsonを書く

Page 16: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

最小限の ChromeExtension

{ "name": "First App", "version": "0.1", "manifest_version": 2,

"description": "My First Chrome Extension",

"browser_action": { "default_icon": "icon.png" } }

• manifest.json

• 設定ファイル

• Chrome APIを使用する時の権限や、読み込む外部ファイルなども設定する。

Page 17: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

動かしてみる

• Chromeの拡張機能ページを開くchrome://extensions

• デベロッパーモードに✔を入れる。

• 「パッケージ化されていない拡張機能を読み込む」で作成した拡張機能を読み込む。

Page 18: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Demo

Page 19: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 20: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Browser Actionを作ってみる

Page 21: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Browser Actionを作ってみる

• popup.htmlを書く。

• Browser Actionを作る時に必要なHTMLファイル

• アイコンをクリックすると出てくる画面

• 小さなWebページと考えて良い

Page 22: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Browser Actionを作ってみる

{ "name": "omairi-anytime", "version": "0.1", "manifest_version": 2,

"description": "いつでもお参り",

"browser_action": { "default_icon": "icon.png", "default_title": "Omairi Anytime", "default_popup": "popup.html" } }

• 何をするにもまずはmanifest.json

• manifest.jsonにbrowser_actionの記述を追加

• default_popupで“popup.html”を指定。

Page 23: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Browser Actionを作ってみる

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body style="min-width: 250px"> <h2>Omairi Anytime</h2> <img src="./jinja.png" alt="jinja">

</body> </html>

• 普通のHTMLで記述

Page 24: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Demo

Page 25: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Bootstrapも使える

Page 26: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Demo

Page 27: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 28: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Context Menuをいじってみる

Page 29: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome API• タブやブックマーク、

cookieやコンテキストメニューなど、Chromeで扱うほとんどのものを操作できる。

• 詳しくは→ https://developer.chrome.com/extensions

Page 30: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Context Menuをいじってみる

• manifest.jsonにpermission設定を追加

• 今回はtabを操作するので、tabsを追加

{ "name": "SENSEI NOTE Search", "version": "0.1", "manifest_version": 2,

"description": "右クリックメニューからSENSEI NOTE検索",

"permissions": [ "tabs", "http://*/*", "contextMenus" ],

"icons": { "128": "icons/128.png", "16": "icons/16.png", "32": "icons/32.png", "48": "icons/48.png" },

"background": { "scripts": ["background.js"] } }

Page 31: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Context Menuをいじってみる

• background.jsを書く。

• background.jsChromeが起動している間ずっと動いているスクリプト

chrome.contextMenus.create({ "title": "「%s」をSENSEI NOTEで検索", "type": "normal", "contexts": ["selection"], "onclick": function(info) { var url = ‘https://senseinote.com/search?word=' url += encodeURIComponent(info.selectionText); chrome.tabs.create({ url: url }); } });

Page 32: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Demo

Page 33: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 34: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome Web Storeで公開できる

• chrome://extensions でExtensionをパッケージ化

• Chrome ウェブストア Developer Dashboardへ https://chrome.google.com/webstore/developer/dashboard

• $5 課金

• 公開

Page 35: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 36: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

https://github.com/mktakuya/senseinote-search

https://chrome.google.com/webstore/detail/sensei-note-search/enoecblednfpnefbhfllbnknfeldcaio

Page 37: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 38: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

SENSEI NOTENotify

Page 39: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Demo

Page 40: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
Page 41: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

まとめ• Chrome Extensionは普段ぼくたちが触る技術で

簡単に作れる!

• 作ったExtensionはぜひ Chrome ウェブストアで公開しよう!

Page 42: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

Chrome Extension いじってみた話

Framgia × LOUPE 勉強会 #2 2015.08.24.

Engineer at LOUPE, Inc. Takuya Mukohira (mktakuya)

Page 43: 第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」

~END~