2

このメソッドは、Web サイトの文字列が null ではなく、少なくとも長さが 3 の場合に Safari で URL を開きます。しかし、supplierWebsite=@"www.heritage.com" がある場合、何も起こりません。Heritage.com は有効な Web サイトではないため、UIApplication でアクティブ化されていません。ウェブサイトが利用できないことをユーザーに知らせるポップアップを少なくとも表示したいと思います。Web サイトが利用できないことを 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 を確認してください。

YES の場合、NO の場合があります。

于 2013-01-21T06:20:49.087 に答える
2

canOpenURL次のように、UIApplicationクラスを使用するだけです。

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

canOpenURL:

アプリケーションが特定の URL リソースを開くことができるかどうかを返します。

- (BOOL)canOpenURL:(NSURL *)url

パラメーター

URL

A URL object that identifies a given resource. The URL’s scheme—possibly a custom scheme—identifies which application can

URL を処理します。

戻り値

URL を受け入れるアプリケーションが利用できない場合は NO。それ以外の場合は、YES を返します。討論

このメソッドは、openURL: が呼び出された場合に、それを処理するために別のアプリケーションが起動されることを保証します。完全な URL が有効であることを保証するものではありません。可用性

Available in iOS 3.0 and later.

UIApplication.h で宣言

于 2013-01-21T06:20:34.580 に答える