15

クライアントブラウザがGEO-URI-scheme をサポートしているかどうかを JavaScript で確認する方法はありますか?

サポートされていないブラウザの座標を地図へのリンクとして表示したい

<a href='http://osm.org/#map=18/52.51627/13.37769'>Berlin</a>

サポートされているブラウザー (スマートフォンなど) の場合は、独自のネイティブ アプリへのリンクとして表示されます。

<a href='geo:52.51627,13.37769'>Berlin</a>
4

1 に答える 1

7

いいえ、ありません。プロトコルが使用可能かどうかはgeo、ブラウザー次第ではなく、基盤となる OS 次第です。Android のブラウザーは、それをサポートできるかどうかわかりません。サブシステムにgeoURI のハンドラーがあるかどうかを確認し、ある場合はそれを開きます。システムがカスタム URI をサポートしていることを確認する唯一の方法は、リンクを開いて、それが機能するかどうかを確認することです。ユーザーを完全に中断することなく、これを自動的に行う方法はありません。

これを行う最良の方法の良い例は、Apple の maps.apple.com です。サーバー側の UA スニッフィングを使用して、maps.apple.com を利用可能な最適なサイトにリダイレクトします。

任意のマーベリックス ブラウザーでhttp://maps.apple.com/?q=cupertinoにアクセスしようとすると、 maps://URL (Maps.app アプリのカスタム URI) に 302 が送信されます。iOS デバイスも同様です。認識されないブラウザの場合、対応する maps.google.com アドレスにリダイレクトされます。これは、独自のマップ Web プレゼンスがないためです。

于 2013-11-13T06:59:40.893 に答える