如何在iOS上分享WhatsApp上的内容

Ash*_*ani 3 ios whatsapp

我想从我的应用程序中分享一个Url链接和一些短信到WhatsApp.我该如何分享内容?

我得到的代码只有文字

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];
    }
Run Code Online (Sandbox Code Playgroud)

但我如何在WhatsApp中分享我的网址链接?

小智 5

我对这个带有url字符串的whatsapp api有一个问题,特别是当它们包含一个包含多个字段的查询字符串时,例如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]];
Run Code Online (Sandbox Code Playgroud)
  • 请注意在CFURLCreateStringByAddingPercentEscapes函数中使用要转义的字符.