2013-03-18 122 views
0

我想从iOS应用程序内部打开Goog​​le地图应用程序。不能从另一个应用程序内启动Google地图应用程序

我使用这个代码:

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

,但它不工作。谁能告诉我最新的问题?

+0

是在您的设备上安装的应用程序? – 2013-03-18 05:24:14

回答

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方案打开第三方应用程序。它应该安装在设备上。

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。

返回值

NO,如果没有应用程序,其将接受的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. 

返回值

YES如果位于由URL资源被成功打开; 否则否。

讨论

的URL可以定位在相同或其他应用程序的资源。如果 资源是另一个应用程序,则调用此方法可能会导致 呼叫应用程序退出,因此可以启动另一个应用程序。

您可以调用canOpenURL:在调用此函数之前,验证 是否可以处理它。

请参考UIApplication Class

+0

谢谢..很多.. – user2174560 2013-03-18 05:36:53

+0

@ user2174560:随着快乐:) – 2013-03-18 05:37:33

相关问题