4

アクションシートを使用して、リンク付きのサファリを開こうとしています。変数が正しく設定され、それに応じてリンクが表示されますが、何らかの理由でSafariが開かず、理由がわかりません...

コードは次のとおりです。

-(void)actionSheet {
    sheet = [[UIActionSheet alloc] initWithTitle:@"Options"
                                    delegate:self
                           cancelButtonTitle:@"Cancel"
                      destructiveButtonTitle:nil
                           otherButtonTitles:@"Open in Safari", nil];

    [sheet showInView:[UIApplication sharedApplication].keyWindow];
}

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    if (buttonIndex != -1) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.url]];
    }
}
4

2 に答える 2

15
NSString *strurl = [NSString stringWithFormat:@"http://%@",strMediaIconUrl];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:strurl]];
use http:// must.
于 2013-04-08T08:44:35.860 に答える
1

Safariでリンクを開くには、次のことを行う必要があります。設定する必要がある場所に設定するものですurlAddress。または、にNSString置き換えることもできます。urlAddress@"someString"

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: urlAddress]];

UIActionSheetDelegateまた、ヘッダーファイルがプロトコルを実装していることを確認しましたか?

編集:

エラーが生成されるかどうかを確認するには、呼び出しで次のことを試してください。

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    if (buttonIndex != -1) {

        NSUrl *myURL = [NSURL URLWithString:self.url];

        if (![[UIApplication sharedApplication] openURL:myURL]) {
            NSLog(@"%@%@",@"Failed to open url:",[myURL description]);
        }

    }
}
于 2012-09-08T00:19:18.873 に答える