0

我正在尝试从 iOS 应用程序中打开 Google 地图应用程序。

我正在使用这段代码:

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

但它不工作。谁能告诉我是什么问题?

4

1 回答 1

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

可以打开网址:

返回应用程序是否可以打开给定的 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;否则,返回 YES。

讨论

该方法保证如果调用 openURL: 会启动另一个应用程序来处理它。它不保证完整的 URL 是有效的。


打开网址

打开指定 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 类

于 2013-03-18T05:20:32.723 回答