当网站字符串不为空并且它至少是3的长度时,此方法在Safari中打开网址。但是当我有supplierWebsite = @“www.heritage.com”时,没有任何反应。我知道heritage.com不是有效的网站,因此它不会在UIApplication中激活。我想显示至少一个告诉用户网站不可用的弹出窗口。有什么办法我可以告诉Alertview告诉我们网站不可用。
- (IBAction)doWebOpen:(UIButton *)sender {
if (self.provider.supplierWebSite && [self.provider.supplierWebSite length] > 3) {
NSString *urlString = [self.provider supplierWebSite];
NSURL *url = [NSURL URLWithString:urlString];
[[UIApplication sharedApplication] openURL:url];
}else {
NSError *err = [NSError errorWithDomain:@"com.cantopenweb" code:509 andDescription:@"This supplier does not have a website."];
[self showErrorAlert:err];
}}
答案 0 :(得分:3)
您可以使用canOpenURL方法,
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@“your website”]];
该方法返回BOOL,因此请检查是否为NO。
如果是,则不能否。
答案 1 :(得分:2)
只需使用UIApplication类的canOpenURL
,例如:
if([[UIApplication sharedApplication] canOpenURL:url])
{
[[UIApplication sharedApplication] openURL:url];
}
else
{
//show alert
}
<强> 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有效。可用性
Available in iOS 3.0 and later.
在UIApplication.h中声明