我正在尝试从iOS应用中打开Google地图应用。
我正在使用此代码:
[[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
但它不起作用。谁能告诉我这个问题是什么?
答案 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:在调用这个之前验证那里 是一个可以处理它的应用程序。