【问题标题】:iOS - run 3rd party navigation app from codeiOS - 从代码运行 3rd 方导航应用程序
【发布时间】:2014-03-31 16:40:08
【问题描述】:

我是 iOS 新手,我想从我自己的应用程序中运行导航应用程序。现在我只使用这个代码:

- (void)navigationButtonTap:(id)sender
{
    Class mapItemClass = [MKMapItem class];
    if (mapItemClass && [mapItemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)])
    {
        // Create an MKMapItem to pass to the Maps app
        CLLocationCoordinate2D coordinate =
        CLLocationCoordinate2DMake([actualPlace.latitude doubleValue], [actualPlace.longitude doubleValue]);
        MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:coordinate
                                                       addressDictionary:nil];
        MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
        [mapItem setName:actualPlace.Name];
        // Pass the map item to the Maps app
        [mapItem openInMapsWithLaunchOptions:nil];
    }
}

它正在工作,我知道如何更改它以在导航启动的情况下运行 Apple 地图。没关系,但现在我正在考虑一些第 3 方选项。与谷歌地图等其他导航应用程序的情况如何? iOS用户可以将它们设置为默认并使用它们吗?如何为用户提供启动他想要的应用程序的选项?

我找到了code for implementing Google Maps 选项。但它与 Apple 地图的代码不同。我可以为所有导航应用程序使用相同的代码,然后用户决定运行哪个应用程序吗?

【问题讨论】:

    标签: ios objective-c google-maps ios7


    【解决方案1】:

    您可以启动第 3 方导航应用程序并仅在其他应用程序符合/实施 url 架构时交出地址或地理位置。一些导航应用程序实际上就是这样做的。

    【讨论】:

    • Apple 地图和其他地图有一些默认方案吗?
    • 这里是苹果地图。 developer.apple.com/library/ios/featuredarticles/… 今天晚些时候,我将看看我去年某个时候发现的导航应用程序的 url 模式。除非其他人同时提供该信息。
    • 但这些仅适用于 Apple 地图,对吧?我不能使用它们来启动 Google 地图?对于我想要支持的每个导航应用程序,我都必须实施他们的方案,对吗?没有一些默认方案可以启动可用选项,然后用户选择要使用的应用程序?
    • 我完全不知道谷歌地图。但是还有其他导航应用确实提供了 URL 架构,因此可以从您的应用中启动。
    猜你喜欢
    • 2015-03-05
    • 2023-03-04
    • 2015-07-11
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    相关资源
    最近更新 更多