[英]iOS support 3rd party navigation
在iOS 8中(也許我也記不起來是7),您可以設置默認的導航應用程序。 我當前正在實現一個按鈕,該按鈕使用戶可以通過以下方式打開Apple Maps並獲取前往某個位置的路線:
- (IBAction)getDirections:(id)sender {
CLLocationCoordinate2D endingCoord = storeLocation;
MKPlacemark *endLocation = [[MKPlacemark alloc] initWithCoordinate:endingCoord addressDictionary:nil];
MKMapItem *endingItem = [[MKMapItem alloc] initWithPlacemark:endLocation];
endingItem.name = @"Cubes Pizza Sunway";
NSMutableDictionary *launchOptions = [[NSMutableDictionary alloc] init];
[launchOptions setObject:MKLaunchOptionsDirectionsModeDriving forKey:MKLaunchOptionsDirectionsModeKey];
[endingItem openInMapsWithLaunchOptions:launchOptions];
}
這很好用,並啟動了我所期望的。 但是,如果用戶安裝了Google Maps怎么辦? 蘋果會自動給用戶一個選擇嗎? 還是我需要實施一個活動表並檢測所有導航應用,然后找出每個應用的URL模式?)
我將如何實施這樣的事情?
這是相同的問題: iOS-從代碼運行第三方導航應用程序,但是它已經使用了一年,並且想知道此功能是否由APPLE實現,如果不是,則如何實現檢查是否已安裝應用程序等。
Google Maps具有可用於啟動該應用程序的URL方案 。 這是您要求路線的方式 。 如他們頁面上所述,您可以通過以下方式檢查是否安裝了Google Maps應用:
UIApplication.sharedApplication().canOpenURL(NSURL(string: "comgooglemaps://")!)
您還需要將comgooglemaps
添加到Info.plist中的LSApplicationQueriesSchemes
字典中,以便能夠在iOS 9上使用canOpenURL:
方法,如本博文所述。
我相信您正在考慮的“默認導航應用程序”實際上是用戶在內置Maps應用程序中手動切換其他應用程序的一種方式 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.