対象: Google Mapsを起動する(Swift)URLスキームを利用すれば、アプリからGoogle Maps for iOSアプリを起動して地図を表示することができる。やり方はとても簡単で、UIApplicationのopenメソッドにGoogle MapsのURLを渡すだけで良い。 let url = URL(string: "comgooglemaps://") if UIApplication.shared.canOpenURL(url!) { //UIApplication.shared.openURL(url!) UIApplication.shared.open(url!) } しかし、これだけで実行すると、Google Mapsが端末にインストール済みかどうかを確認するcanOpenURLメソッドを呼んだところで以下のようなエラーが出てしまうだろう。 SwiftInvokeSafari[341:95637] -canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps" 使用したいURLスキームは、予めInfo.plistのLSApplicationQueriesSchemesキーに配列として登録しておかなければならない。Google Mapsの場合は"comgooglemaps"を登録しておけば良い。ただし、canOpenURLメソッドによるGoogle Mapsのインストール確認を行わないのならばこの限りではない。
例えば、地図上で千葉駅を検索したいらなら、qパラメータで"千葉駅"を指定する。尚、マルチバイト文字を含む場合はURLエンコードする必要がある。 let encoded = "comgooglemaps://?q=千葉駅".addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)! let url = URL(string: encoded) if UIApplication.shared.canOpenURL(url!) { UIApplication.shared.open(url!) } アプリから起動したGoogle Mapsの左上には、アプリ名と矢印が表示され、起動元のアプリに戻ることも可能となっている。 関連項目として、この方法でChromeの起動も可能なので、必要であればこちらを参照していただきたい。 (2018/01/19)
Copyright© 2004-2019 モバイル開発系(K) All rights reserved.
[Home]
|