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