1

ユーザーがブラウザに拡張機能をインストールしているときに、クロスライダーで作成された拡張機能に値(サーバー変数に保存されている)を保存する方法はありますか?これは、ユーザーがブラウザアドオンのインストールを開始したときのことです。

次のような状況を考えてみましょう。ブラウザ拡張機能が作成され、拡張機能をダウンロードしてWebサイトにインストールするためのリンクが表示されます。次に、phpから取得した値を保存し、拡張機能自体をアンインストールしない限りユーザーが削除できない拡張機能のどこかにローカルに保存する必要があります。

4

1 に答える 1

2

URL を使用してサーバー変数を取得できる限り、拡張機能内からこれを行うことができます (たとえば、サーバー変数の値を単に返す php ページを作成します)。

ステップ1


返されたデータを処理する必要があるかどうかに応じて、次のいずれかの方法を使用して値をフェッチして保存できます。

: このステップをbackground.jsファイルに実装して、拡張機能が最初に実行されたときに 1 回だけ実行されるようにすることをお勧めします。

方法 1 [応答は処理を必要としない]: appAPI.db.setFromRemote()メソッドを使用して、値を取得して保存します。

var serverVar = appAPI.db.get('serverVar');
if (!serverVar) {
    appAPI.db.setFromRemote(
        "<URL>", // URL to fetch the server variable
        'serverVar' // Name of key to use for saving the value
    );
}

方法 2 [応答には処理が必要]: appAPI.request.get()メソッドを使用して値をフェッチし、応答を処理してから、appAPI.db.set() メソッドを使用します [詳しくは、http:// docs.crossrider.com/#!/api/appAPI.db-method-set] を使用して値を保存します。

var serverVar = appAPI.db.get('serverVar');
if (!serverVar) {
    appAPI.request.get(
        "<URL>", // URL to fetch the server variable
        function(response, headers) { // onSuccess callback function
            // process the reponse as required
            // e.g. trim leading and trailing spaces
            var myProcessedData = response.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

            // save data to local db
            appAPI.db.set('serverVar', myProcessedData);
    });
}

ステップ2


サーバー変数がローカル データベースに保存されると、appAPI.db.get() メソッドを使用して、拡張機能のバックグラウンド スコープまたはページ スコープ内から取得できます [詳細については、http://docs.crossrider.com/ を参照してください。 #!/api/appAPI.db-method-get]、次のように:

var serverVar = appAPI.db.get("serverVar");
于 2012-11-11T11:50:32.507 に答える