2013-12-26 6 views
3

Я использую следующий код для обмена текстом на WhatsApp из моего приложения iOS.Не удалось поделиться текстом на Whatsapp

 NSString *textToSend = [NSString stringWithFormat:@"whatsapp://send?text=%@", self.theTextView.text]; 
     NSURL *whatsappURL = [NSURL URLWithString:textToSend]; 

     if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) { 
      [[UIApplication sharedApplication] openURL: whatsappURL]; 
     }else{ 
      [[[UIAlertView alloc] initWithTitle:nil message:@"Whatsapp not isntalled on this device! Please install first." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil]show]; 
     } 

Это не работает должным образом.

Если мне нравится объяснение here, он отлично работает.

 NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=Hello%2C%20World!"]; 

ответ

2

Я держал пари, что self.theTextView.text не получает URL-закодирован.

Как решить, что:

string = [string stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

Предполагая, что вы используете UTF8.

+0

что это значит? Как мне его решить? – April

+0

URL-адрес не может содержать специальные символы (например, whitespace '' преобразуется в '% 20'). Вам нужно проанализировать текст и заменить эти символы на действующие. –

+1

Спасибо Мэтту! Теперь я понял. – April

8

Маттео Пачини ваш ответ не является правильным,

вы должны ADD PercentEscapes (stringByAddingPercentEscapesUsingEncoding:) НЕ ЗАМЕНИТЬ PercentEscapes (stringByReplacingPercentEscapesUsingEncoding:)

string = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
Смежные вопросы