[Titanium] iOSとAndroidで地図アプリ(Google Maps)を起動
アプリ内の地図と地図アプリを連携すると便利なので、パラメータを渡して起動する方法を調査。
環境: Titanium SDK 3.1.1.GA
参考にしたのは下記。
- Google Maps URL Scheme - Google Maps SDK for iOS - Google Developers
- Apple URL Scheme Reference: Map Links
- Google Maps のパラメータ
実際書いたコードを下記に抜粋。
iOSの場合はグーグルマップアプリがインストールしてあれば、そちらを優先して開く。
Androidの場合はおなじみのアプリを選択する。
緯度と経度をクエリとして渡した方がピンが立つので分かりやすい。
if (this.isAndroid) {
// Google Map
url = [];
url.push('http://maps.google.com/maps');
//url.push('?ll=' + this.region.latitude + ',' + this.region.longitude);
url.push('?q=' + this.region.latitude + ',' + this.region.longitude);
url.push('&z=16');
Titanium.Platform.openURL(url.join(''));
return true;
}if (this.isIos) {
// Google Map of Native App
url = [];
url.push('comgooglemaps://');
//url.push('?center=' + this.region.latitude + ',' + this.region.longitude);
url.push('?q=' + this.region.latitude + ',' + this.region.longitude);
url.push('&zoom=16');
if (Titanium.Platform.canOpenURL(url.join(''))) {
Titanium.Platform.openURL(url.join(''));
return true;
}// Native App
url = [];
url.push('http://maps.apple.com/');
//url.push('?ll=' + this.region.latitude + ',' + this.region.longitude);
url.push('?q=' + this.region.latitude + ',' + this.region.longitude);
url.push('&z=16');
Titanium.Platform.openURL(url.join(''));
return true;
}
< Related Posts >