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

