編集部からのお知らせ
新着記事まとめPDF「IBM分社のキンドリル」
ZDNet Summit 2021開催のご案内

jMakiでGoogle GearsとJavaをつなげてみた - (page 4)

杉山貴章(オングス)

2007-06-19 14:54

 さて、ここではGoogle GearsのLocalServer機能を利用して、ボタンをクリックしたらページのキャッシュを保存するアプリケーションを作成してみる。ページのキャッシュをjMakiの拡張機能として実装するには、extension.jsのexecute関数においてResourceStoreを利用してキャプチャを実行すればよい。LocalServerの利用方法に関する詳細はGoogle Gearsのドキュメントを参照していただきたい。

 今回はexecute関数および関連する関数をリスト5のように作成した。このコードをリスト4の(3)部分に記述すればよい。

 (4)のinitLocalserverは、LocalServerを初期化するための関するである。execute関数の本体は(5)の部分で、Storeを開いて第2引数に指定されたファイル群をキャプチャする。この部分の処理が、(1)の設定によって/google/gears/executeに対するアクセスにマップされる。(5)はキャプチャの実行に対するコールバック関数である。

リスト5 execute関数の実装

  var localServer = null;
  var store = null;

  // (4)LocalServerの初期化
  function initLocalserver(store_name) {
    if (!window.google || !google.gears) {
          jmaki.log("Google Gears not found.");
          return;
     }

    try {
      localServer =
        google.gears.factory.create('beta.localserver', '1.0');
    } catch (ex) {
        jmaki.log('Could not create localserver: ' + ex.message);
    }
    store = localServer.openStore(store_name);
  }

  // (5)execute関数
  this.execute = function(args) {
    var store_name = args.storename;
    var fileToCapture = args.files;
    if (!localServer) initLocalserver(store_name);
    if (!localServer) {
      jmaki.log("Google Gears Extension: Unable to find localserver.");
      return;
    }

    // Storeを作成
    store = localServer.createStore(store_name);

    if (!store) {
      jmaki.log("Google Gears Extension: Unable to create store.");
      return;
    }
    jmaki.log("Google Gears Extension: Created the store.");

    // キャプチャを実行
    store.capture(filesToCapture, captureCallback);
  }

  // (6)コールバック関数
  function captureCallback(url, success, captureId) {
    jmaki.log("Google Gears Extension: " + url + ' captured ' + (success ? 'succeeded' : 'failed'));
  }
}

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]