2

当网站字符串不为空且长度至少为 3 时,此方法在 Safari 中打开 url。但是当我有 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];
}}
4

2 回答 2

3

你可以使用 canOpenURL 方法,

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"你的网站"]];

该方法返回一个 BOOL,因此请检查 YES 或 NO。

如果是,则可以,否则为否。

于 2013-01-21T06:20:49.087 回答
2

只需使用canOpenURLUIApplication,例如:

if([[UIApplication sharedApplication] canOpenURL:url])
 {
    [[UIApplication sharedApplication] openURL:url];
 }
 else
 {
   //show alert
 }

可以打开网址:

返回应用程序是否可以打开给定的 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 是有效的。可用性

Available in iOS 3.0 and later.

在 UIApplication.h 中声明

于 2013-01-21T06:20:34.580 回答