株式会社ライブキャストロゴ 株式会社ライブキャスト

flashcast:フリーで働くITエンジニア集団のブログ: Stray ChildをAndroid対応(gears編)でAndroidでも現在地の住所を表示できるようにしました。今回は、Androidでも住所の保存・閲覧・削除ができるようにします。

住所の保存は、iPhone同様、SQLiteを利用します。
また、前回同様、Gears API – Google Codeを利用します。

Database2API – gears – A proposal to add native HTML5 SQL API to Gears – Project Hosting on Google Codeが利用できれば、データを処理する部分はほとんど修正する必要はなかったのですが、試してみたところ、うまくいかず、まだサポートされていないようでしたので、Database API – Gears API – Google Codeで実装しました。

データベースをオープンする処理です。

function checkGearsDbConnect() {
 var isDbConnect = true;

 try {
  db = google.gears.factory.create('beta.database');
  db.open('StrayedChild');
 }
 catch (error) {
  isDbConnect = false;
 }
 finally {
  return isDbConnect;
 }
}

iPhoneの時は、データベース名にスペースが含まれていても大丈夫だったのですが、

db = openDatabase('Strayed Child', '1.0', 'Strayed Child');

Gearsの場合はダメみたいなので、「StrayedChild」というデータベース名にしました。

SQLを実行する部分は、今後、各種ブラウザのHTML5 ローカルデータベース機能の対応動向を意識して、ユーザエージェントで処理を切り替えるような実装はあえてやめました。

function executeSql(sql, params, callback, date) {
 var result = true;

 try {
  if (db.transaction != null) {
   db.transaction(
    function(transaction) {
     transaction.executeSql(sql, params,
      function(transaction, resultSet) {
       if (callback) {
        callback(resultSet, date);
       }
      }
     );
    },
    function(error) {
     result = false;
    }
   );
  }
  else {
   var resultSet = db.execute(sql, params);

   if (callback) {
    callback(resultSet, date);
   }
  }
 }
 catch (error) {
  result = false;
 }
 finally {
  return result;
 }
}

コールバック関数は、SQLの実行結果を画面に反映させたいようなときに指定します。例えば、保存した住所情報を一覧表示するような場合です。後処理が必要なければ、コールバック関数には何も指定しません。

保存した住所情報を閲覧する画面です。

Androidをもっている方、是非試してみてください!
Stray Child