5 開発デモ
Gomita
1. 開発環境準備
・Pythonインストール
・SDKセットアップ
2. 「Hello, World」パッケージ作成
・マニフェストファイル
・メインプログラム
・インストーラ
3. 「Copy Title + URL」パッケージ
・メインプログラム
・自作ライブラリ
1. 開発環境準備
・Pythonインストール
・SDKセットアップ
2. 「Hello, World」パッケージ作成
・マニフェストファイル
・メインプログラム
・インストーラ
3. 「Copy Title + URL」パッケージ
・メインプログラム
・自作ライブラリ
入手先
Python
http://www.python.org/download/
Jetpack SDK
https://jetpack.mozillalabs.com/
SDKを起動する
bin\activate
SDKドキュメントを表示する
cfx docs
1. 開発環境準備
・Pythonインストール
・SDKセットアップ
2. 「Hello, World」パッケージ作成
・マニフェストファイル
・メインプログラム
・インストーラ
3. 「Copy Title + URL」パッケージ
・メインプログラム
・自作ライブラリ
パッケージのフォルダ構成
フォルダ/ファイル 概要
jetpack-sdk-0.5
packages
hello-world ルートフォルダ
package.json マニフェストファイル
lib プログラム格納フォルダ
main.js メインプログラム
マニフェストファイル
パッケージのメタ情報をJSON形式で記述
hello-world \ package.json
{
"name": "hello-world",
"fullName": "Hello, World!",
"version": "0.1",
"description": "This is my first package.",
"author": "Gomita <gomita@xuldev.org>"
}
メインプログラム
hello-world \ lib \ main.js
console.log は標準のグローバル関数
テスト実行
パッケージのルートフォルダ内で...
timer.setInterval は window.setIntervalと同等
インストーラ作成
パッケージから配布用インストーラを作成
cfx xpi
Firefox 3.7場合、
再起動せずにインストール可能
1. 開発環境準備
・Pythonインストール
・SDKセットアップ
2. 「Hello, World」パッケージ作成
・マニフェストファイル
・メインプログラム
・インストーラ
3. 「Copy Title + URL」パッケージ
・メインプログラム
・自作ライブラリ
完成イメージ
実装の概要
コンテキストメニューへ項目を追加する
→ Context Menu ライブラリを使用
現在のタブのタイトルとURLを取得する
→ Tabs ライブラリを使用
タイトルとURLをクリップボードへコピー
→ 標準のライブラリでは実現不可
→ Clipboard ライブラリを自分で作成
パッケージのフォルダ構成
フォルダ/ファイル 概要
jetpack-sdk-0.5
packages
copy-title-url ルートフォルダ
package.json マニフェストファイル
lib プログラム格納フォルダ
main.js メインプログラム
clipboard.js 自作ライブラリ
コンテキストメニューへの項目追加
const contextMenu = require("context-menu");
メソッド 概要
クリップボードにコピーされた文字列を
getText()
戻り値として返す。
Clipboardライブラリの実装
nsIClipboardHelper というXPCOMで内部処理を実装
copy-title-url \ lib \ clipboard.js
exports.setText = function(text) {
clipboardHelper.copyString(text);
};
exports.getText = function() {
// ToDo
};
タイトルとURLをコピー
const contextMenu = require("context-menu");
const tabs = require("tabs");
const clipboard = require("clipboard");
まだまだ他にも色々あります
https://jetpack.mozillalabs.com/sdk/0.5/docs/
Widgetライブラリ
const widgets = require("widget");
http://builder.mozillalabs.com/
ありがとうございました