无法从其他应用内部启动Google地图应用

时间:2013-03-18 05:15:26

标签: iphone ios google-maps mkmapview

我正在尝试从iOS应用中打开Goog​​le地图应用。

我正在使用此代码:

[[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];

但它不起作用。谁能告诉我这个问题是什么?

1 个答案:

答案 0 :(得分:1)

首先canOpenURL无法打开应用。它只是检查应用程序是否可以打开应用程序。改为使用openURL方法。

if([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]])
{
  [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
}

注意:

使用URL Scheme打开第三方应用。它应该安装在设备上。

  

<强> canOpenURL:

     

返回应用程序是否可以打开给定的URL资源。

     

- (BOOL)canOpenURL:(NSURL *)url

     

参数

     

<强>网址

A URL object that identifies a given resource. The URL’s scheme—possibly a custom scheme—identifies which application can
     

处理网址。

     

返回值

     如果没有可用的接受URL的应用程序,则

否;除此以外,   返回YES。

     

讨论

     

此方法保证如果调用openURL:,则另一个   将启动应用程序来处理它。它并不保证   完整的URL有效。


  

<强>的OpenURL

     

在指定的URL处打开资源。

     

- (BOOL)openURL:(NSURL *)url

     

参数

     

<强>网址

An object representing a URL (Universal Resource Locator). UIKit supports the http:, https:, tel:, and mailto: schemes.
     

返回值

     

如果URL成功打开的资源是,则为YES;   否则没有。

     

讨论

     

URL可以在同一个应用程序或其他应用程序中找到资源。如果   资源是另一个应用程序,调用此方法可能会导致   调用应用程序退出,以便启动另一个。

     

你可以调用canOpenURL:在调用这个之前验证那里   是一个可以处理它的应用程序。

请参阅UIApplication Class