2013-04-15 36 views
9

Tôi đang cố gắng tìm hiểu cách xử lý kết quả của mã này để xem liệu Google Maps có được cài đặt trong ứng dụng hay không.Kiểm tra xem ứng dụng Google Maps có được cài đặt trong iOS 6

[[UIApplication sharedApplication] canOpenURL: 
[NSURL URLWithString:@"comgooglemaps://"]]; 

tôi đang tạo ra một UIAlertView với các tùy chọn trong đó và nếu nó là hoặc không phải là tôi muốn cung cấp cho người dùng tùy chọn khác nhau.

Làm cách nào để lấy kết quả của mã ở trên và biến thành BOOLEAN?

Xin cảm ơn trước.

Trả lời

21

Kết quả đã của canOpenURL: là một boolean:

BOOL canHandle = [[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps:"]]; 

if (canHandle) { 
    // Google maps installed 
} else { 
    // Use Apple maps? 
} 
+0

Làm mát bây giờ - không bao giờ thấy nó như thế :-) –

+0

hoạt động hoàn hảo –

+0

nó trả về false và bản đồ google đã có trong iphone là có giải pháp nào khác cho ios9 ??? –

4

Trên dành cho iOS 9.0

Bước 1. Thêm comgooglemaps trong LSApplicationQueriesSchemes trong các ứng dụng của bạn info.plist

Bước 2.

BOOL isGoogleMap = [[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://"]]; 
UIAlertView *alert; 

if(isGoogleMap) 
{ 
    alert = [[UIAlertView alloc] 
      initWithTitle:@"Get Directions" 
      message:@"Show Map" 
      delegate:self 
      cancelButtonTitle:@"Cancel" 
      otherButtonTitles:@"View in Apple Maps", @"View in Google Maps", nil]; 
} 
else 
{ 
    alert = [[UIAlertView alloc] 
      initWithTitle:@"Get Directions" 
      message:@"Show Map" 
      delegate:self 
      cancelButtonTitle:@"Cancel" 
      otherButtonTitles:@"View in Apple Maps", nil]; 
} 
alert.tag = 1010; 
[alert show]; 
Các vấn đề liên quan