1

addon-sdk を使用して、最初の Firefox アドオンを作成しています。

このアドオンの目的は、

  • 特定のページからデータを取得し、
  • このデータを使用して、アドオンに組み込まれている SQLite データベースにクエリを実行し、
  • 特定のページにクエリの結果を追加します。

sqlite3 で SQLite データベースを作成し、「データ」フォルダーまたはアドオンに myDB.db として保存しました。

しかし、データベースを開こうとすると、うまくいきません。

私は成功せずにこのように試みました:

// Import the needed modules
var {Cu} = require("chrome");
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/FileUtils.jsm");

// Open SQLite database
let file = FileUtils.getFile(self.data, ['myDB.db']);
let mDBConn = Services.storage.openDatabase(file); // Will also create the file if it does not exist

データベースがそこにないため (または、そこにコピーする必要がありますか?)、Mozilla ストレージのドキュメントで以前に設定されていた場所を「ProfD」に変更しました。

別の方法で進めるべきか教えてください。クエリがいくつかあるので、SQLite について考えました。

4

1 に答える 1

4

「FirefoxアドオンのSQLiteファイルを初期化する方法は?」というウラジミール・パラントの受け入れられた回答から

Add-on SDK 1.5 の時点で、拡張機能はインストール時に圧縮解除されなくなりました。それらはディスク上に圧縮された XPI ファイルとして残ります (これはパフォーマンスに適しています)。ただし、SQLite には物理ファイルが必要であり、アーカイブ内のものは必要ありません。

ファイルを保存するには、ProfD フォルダーを使用する必要があります。これはまた、データベースに保存されているデータはすべて、アップグレードまたはレトロインストールの間もそこに残ることを意味します

于 2013-10-17T13:36:20.077 に答える