7

過去に Mozilla アドオン開発に携わったことがあります (初級レベル)。しかし、XPCOM に遭遇したとき、私は本当に怖くなり、途中でそれを残しました。

最近だけ Add-on SDK に出会い、とてもクールだと感じました。以前は数か月かかっていた作業が、SDK では 2 日以内で機能することを知り、非常に興味をそそられました。ここでも、XPCOM モジュールに行き詰まっています。

XPCOM のパワーを活用したいと思っていますが、SDK のコンテキストで XPCOM に慣れるには少なくとも 1 週間はかかります。必要な機能を取得するには、どのコードが必要ですか?

  1. ユーザーセッションごとに、何かをログに記録したいと思います。セッションを区別することができます。私が今欲しいのは、ユーザーのマシンにファイルを作成し、それをアドオンから開き、それに何かを書き込むコードです。

  2. ブックマークとダウンロードにアクセスし、それらを読み取るためのコード。

SDK から元に戻さなければならなくなったら、本当に胸が張り裂けそうです。

4

1 に答える 1

7

このchromeパッケージは、完全な XPCOM アクセスを提供します。ファイルにアクセスするには、FileUtilsモジュールを使用するのが最善です:

var {Cc, Ci, Cu} = require("chrome");
var {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
var file = FileUtils.getFile("ProfD", ["mylogfile.txt"]);
var stream = FileUtils.openFileOutputStream(...);
stream.write(data, data.length);
stream.close();

モジュールをインポートするためのやや変わった構文は、バグ 683217によるものです。FileUtils.openFileOutputStream()Firefox 7 以降でのみ利用可能でありFileUtils.openSafeFileOutputStream()、ファイルに追加する場合は使用できないことに注意してください。

ブックマークにアクセスするには、次のコードで始まる通常のコード スニペットを使用します。

var bmsvc = Cc["@mozilla.org/browser/nav-bookmarks-service;1"]
              .getService(Ci.nsINavBookmarksService);
于 2011-10-11T15:25:10.017 に答える