我正在尝试从 iOS 应用程序中打开 Google 地图应用程序。
我正在使用这段代码:
[[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
但它不工作。谁能告诉我是什么问题?
我正在尝试从 iOS 应用程序中打开 Google 地图应用程序。
我正在使用这段代码:
[[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
但它不工作。谁能告诉我是什么问题?
首先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 类。