Developer's Blog

Sleipnir Linker 開発裏話 – マップアプリを開く –

こんにちは。開発担当の福井です。

皆様、近日公開される新アプリ Sleipnir Linker を心待ちにしていただけているでしょうか?Sleipnir Linker を使えば、PC や Mac でブラウジングしている情報をシームレスに iPhone に送信することができることは以前よりご紹介させていただいている通りです。New Sleipnir から Sleipnir Linker に送信できるデータには電話番号、URL、テキストに加えて”地図”があります。Google Maps を使って表示したページをワンステップで iPhone に送信し、マップアプリで開くことができます。

マップアプリで開く条件

この機能は iOS にある URL Scheme という仕組みが定義されており、特定の URL を Safari で表示させようとすると、別のアプリで URL を拾い表示させることができます。もちろんこれには Google Maps へのリンクも含まれており、Google Maps の URL ではブラウザではなくマップアプリが起動します。しかしながら、Google Maps の全てのページがマップアプリで表示できるわけではありません。以下の Map Links の条件(こちらより抜粋)に合った URL のみがマップアプリで表示することができます。

  • – The domain must be google.com and the subdomain must be maps or ditu.
  • – The path must be /, /maps, /local, or /m if the query contains site as the key and local as the value.
  • – The path cannot be /maps/*.

これに加え、サポートされているパラメータにいくつかの制限があります。条件に合わない Google Maps のページは Safari に飛ばされるので、Web ページが開くことになります。

ditu.google.com?

いかにも怪しい香りの漂う URL ですが、Google のサービスですし、iOS でも正式にサポートされていることからモグリなわけがありません。調べてみると、中国の法律に対応した Google Maps サービスのようで、中国の法律的な関係で正確な位置情報と地図データが微妙にずれているそうです。そのずれたデータに補正がかかっているのが ditu.google.com というわけです。ためしに maps.google.com で中国国内のある箇所を表示し、サブドメインを ditu に変更したところ、少しずれた箇所が表示されました。また、衛星写真にオーバーライドする情報が ditu では充実しています。

閑話休題

Google Maps の URL を Sleipnir Linker に送信した場合、もちろん期待する動作はマップアプリへの連携です。しかし、Google Maps の URL をそのまま送信した場合には、ローカライズのためのクエリなどが含まれ、Map Links の仕様から離れていることが多く、期待した動作にはなりません。そこで、Sleipnir Linker では Google Maps の URL からそれらの非対応のクエリを除外し、できるだけ Map Links の仕様に合う形に修正しマップアプリでも表示できるようにしています(残念ながら、Map Links でまったく対応できないクエリに関しては表示できませんが)。

おわりに

iPhone と PC/Mac をぐっと近づける New Sleipnir と Sleipnir Linker は近日登場です。ご期待ください!


フェンリルのオフィシャル Twitter アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!


Copyright © 2019 Fenrir Inc. All rights reserved.