1

私のモバイル Web アプリは、「maps.google.com/maps?q=[something]」にリンクするだけで、Android または iPhone のマッピング機能を自動的に開始するマップ リンクを使用します。iOS 6 が登場すると、 Appleが「maps.APPLE.com」の使用を望んでいるため、リンクが機能しなくなります。そのため、iOS 6 を特別に検出し、リンクを交換する必要があります。

Android、iOS 6、および iOS 6 より前の iOS で動作するモバイル Web アプリからデバイス/ネイティブ マッピング アプリを開くクリーンな方法はありますか?

「maps.apple.com」に送信したものはすべて「maps.google.com」に転送されます。

これらのリンクはどちらも同じ場所に移動します

http://maps.google.com/maps?q=ニューヨーク+ニューヨーク

http://maps.apple.com/maps?q=New+York

Apple dev サイトの最近更新されたドキュメント... http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Articles/MapLinks.html#//apple_ref/doc/uid/TP40007894-SW1

4

2 に答える 2

1

これを iPhone で試してみたところ、maps.apple.com から新しい Apple Maps アプリが起動しました (ただし、アドレス バーに入力しただけです)。Chrome を使用して iMac で同じリンクをたどると、maps.google.com にリダイレクトされました。これは Apple 側の意図的なものだと思います。iOS 6 を搭載した iPhone をターゲットにしている場合は、google.com から apple.com に切り替える必要があります。シームレスである必要があります。

[確認済み - これは iOS 6.0 を搭載した私の iPhone で動作します - 以前のバージョンの iOS でリダイレクトされることを確認するための iOS 5.x デバイスはもうありません。Safari ではリダイレクトを行いますが、iPhone シミュレーターでは機能しません]

// javascript snippet to detect ipad/iphone OS version - these are notoriously fragile, use at your own risk :)
function getOsVersion() {
var osVersion = window.navigator.userAgent.match(/(ipad|iphone);\s+cpu\s.*os\s+([_0-9]+)/i);
if (osVersion && osVersion.length === 3) {
    return Number(osVersion[2].replace('_', '.'));
}

return 0;

}

于 2012-09-20T05:58:44.333 に答える
-1

Android では、次のインテント URI を使用できます。

geo:latitude,longitude
geo:latitude,longitude?z=zoom
geo:0,0?q=my+street+address
geo:0,0?q=business+near+city

例えば:

String uri = "geo:37.167629,-121.222478";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri) );
startActivity(intent);
于 2012-09-20T04:44:58.353 に答える