2012-05-08 2 views
1

Я пытаюсь открыть URL в сафари с этим кодом:App падает, когда открытие URL в сафари

- (IBAction)webButton:(id)sender { 

    NSString *url = @"www.google.com"; 

    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

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


} 

Но каждый раз, когда приложение падает вверх.

Был ли кто-то в подобной ситуации?

Вот сс от аварии: http://dl.dropbox.com/u/77033905/urlInSafariCrashesUp.png

UPDATE:

NSString *recipients = @"mailto:[email protected]?subject=Hello from Croatia!"; 
    NSString *body = @"&body=It is sunny in Croatia!"; 

    NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body]; 
    email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

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

Это для открытия почты, но так же над sharedApplication. Он падает до.

UPDATE 2: консоли журнала: ARGV символ ** 0xbffff520 * ARGV символ * 0xbffff658 ** ARGV символ '/' ARGC INT 1

UPDATE 3: Он называет IBAction но падает. Когда я пытаюсь использовать этот код в корневом представлении, он работает. Я добавил и подключился к кнопке IB, и все в порядке.

Есть ли проблема с вызовом совместного использования UApplication в subview? Должен ли я звонить по-другому?

UPDATE 4:

Я полагаю, что это та проблема, даже когда я называю пустой IBAction в подвид, поэтому проблема явно не в UIApplication, но в призыве IBAction в подвид.

- (IBAction)webButton:(id)sender { 

    // empty 

} 

UPDATE 5: Решение: How to call IBAction in subview?

+0

пробовал на iphone. Сбой до. – CroiOS

+0

Вы уверены, что ваш IBAction подключен правильно? Можете ли вы поместить точку останова в методе webButton, чтобы убедиться, что вы попадаете в этот метод? – Joe

+0

да, я получаю метод. Pls принимает lok на ОБНОВЛЕНО первое сообщение. – CroiOS

ответ

1

ли врезаться это, если вы делаете что-то вроде

NSString *url = @"http://www.google.com"; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 

Я считаю, вам нужно "Http: //" там ,

+0

Да, он падает. Очень странно :( – CroiOS

+0

Это не странно, если вы наберете «http: // www.google.com», вы получите: «http% 3A% 2F% 2Fwww.google.com», который не является допустимым URL-адресом (см. мой ответ ниже). –

+0

Что такое решение? – CroiOS

3

Вы не указали действительный URL-адрес, URL-адрес всегда имеет форму scheme:<host part>.

// This is correct and will work: 
[[UIApplication sharedApplication] openUrl:[NSURL URLWithString:@"http://www.google.com"]] 

// Updated with body and subject: 
NSMutableString* url = [NSMutableString stringWithString:@"mailto:"]; 
[url appendString:@"[email protected]"]; 
[url appendFormat:@"?subject=%@", [@"Hello from Croatia" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[url appendFormat:@"&body=%@", [@"This is a body" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 
+0

noap, сбрасывается и с этим кодом. – CroiOS

+1

Я думаю, что у вас что-то не так, я все время использую этот же код, а theres ничего плохого ума удар. –

+0

@MDT - весь код выше в моем первом сообщении. – CroiOS

Смежные вопросы