1

我的移动网络应用程序使用地图链接,只需链接到“maps.google.com/maps?q=[something]”即可自动启动 Android 或 iPhone 的地图功能。iOs 6 出来了,链接停止工作,因为苹果希望我们使用“ maps.APPLE.com ”。所以现在我必须专门检测 iOs 6 并换掉链接。

有没有一种干净的方法可以从适用于 Android、iOs 6 和 iOs pre-6 的移动 Web 应用程序打开设备/本机地图应用程序,因为 iOs 6 削弱了它?

原来你发送到“maps.apple.com”的任何东西都会被转发到“maps.google.com”!

这两个链接都指向同一个地方

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

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

最近更新了 Apple 开发网站上的文档... 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 应用程序(但我只在地址栏中输入了它)。当我在 iMac 上使用 Chrome 访问相同的链接时,我被重定向到 maps.google.com。我相信这是苹果故意的。如果您的目标是装有 iOS 6 的 iPhone,那么您需要从 google.com 切换到 apple.com。它应该是无缝的。

[CONFIRMED - this works on my iPhone with iOS 6.0 - I no longer have a iOS 5.x device to confirm that this redirects on a previous version of iOS. It does do the redirect in Safari, but it is broken in the iPhone Simulator]

// 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 中,您可以使用以下 Intent 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 回答