2014-10-31 3 views
3

Я хотел бы поделиться одной ссылкой URL и некоторым текстовым сообщением в WhatsApp из моего приложения. Как я могу обмениваться контентом?Как обмениваться контентом на WhatsApp от iOS

Я получил этот код только текст

NSString * msg = @"Trueman India Magazine"; 
NSString * urlWhats = [NSString stringWithFormat:@"whatsapp://send?text=%@",msg]; 
NSURL * whatsappURL = [NSURL URLWithString:[urlWhats stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) 
    { 
     [[UIApplication sharedApplication] openURL: whatsappURL]; 
    } 

но как я разделить мою ссылку URL-адрес в WhatsApp?

+0

Вы пробовали просто добавить ссылку в строку как 'msg'? – Popeye

+0

Нет, я не буду пытаться, потому что в simulater ничего не установлено. любая возможность установить whats приложение в simulater? –

+0

Почему вы даже спрашиваете, не пытались ли вы еще? Пожалуйста, сделайте исследование, попробовав себя перед тем, как спросить. Нет, вы не можете установить whatsapp на симуляторе, вам понадобится физическое устройство. – Popeye

ответ

1

Включить обычную ссылку внутри текста, например:

NSString * msg = @"Trueman India Magazine http://www.truemanindiamagazine.com"; 

Ссылка будет сгенерирован/tappable после отправки его на кого-то

+0

Проверьте, что? – Popeye

+0

«Check this out» - это пример текста, который должен делиться. – thijsonline

+0

Ну, похоже, вы говорите им, чтобы проверить stackoverflow. Пожалуйста, добавьте правильный код, чтобы показать вам пример. Любой может обернуться и сказать, что проверить это, это ужасный ответ. – Popeye

5

У меня была проблема с этим WhatsApp ИПН с URL-адресов строк, особенно когда они содержали строку запроса с несколькими полями, например http://example.com/foo?bar=foo&foo=bar. При открытии приложения я обнаружил, что текст сообщения будет пустым.

Решение должно состоять в том, чтобы надлежащим образом избегать строки, используя функции CFString. Смотрите документацию яблока здесь: https://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CFURLRef/index.html#//apple_ref/c/func/CFURLCreateStringByAddingPercentEscapes

Но для тех, кто еще с этим вопросом здесь является моим решением в полном объеме:

CFStringRef originalURLString = (__bridge CFStringRef)[NSString stringWithFormat:@"%@", @"http://example.com/foo?bar=foo&foo=bar"]; 
CFStringRef preprocessedURLString = CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, originalURLString, CFSTR(""), kCFStringEncodingUTF8); 
NSString *urlString = (__bridge NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, preprocessedURLString, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8); 
NSString *whatsAppURLString = [NSString stringWithFormat:@"whatsapp://send?text=%@", urlString]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:whatsAppURLString]]; 
  • Обратите внимание на использовании символов для сбежавшего в функции CFURLCreateStringByAddingPercentEscapes.
+0

, пожалуйста, смотрите #lain –

+0

, это действительно решает мою проблему, спасибо большое –

+0

все операции хорошо работают: +, -, *, /. Но когда я использую%, то WhatsAppURLString возвращает (null) –

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