我正在尝试与Whats App分享YouTube链接:
NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=http://www.youtube.com/watch?v=lWA2pjMjpBs"];
if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {
[[UIApplication sharedApplication] openURL: whatsappURL];
}
但是当Whats App打开时,消息框为空。知道为什么会这样吗?
答案 0 :(得分:3)
如果有人遇到同样的问题,我找到了答案:
您只需要对网址进行编码:
NSString *str = [NSString stringWithFormat:youTubeLink,videoId];
str = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)str,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]"),
kCFStringEncodingUTF8);
答案 1 :(得分:1)
对于编码,请在下面使用。
NSString *str = [NSString stringWithFormat:@"http://www.youtube.com/watch?v=lWA2pjMjpBs" ];
str = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *whatsappURL = [NSURL URLWithString:[NSString stringWithFormat:@"whatsapp://send?text=%@", str]];
if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {
[[UIApplication sharedApplication] openURL: whatsappURL];
}
您无法发送特定号码的whatsapp。这是我们的劣势。
要发送特定号码的whatsapp消息,可以在下面进行。
NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?abid=1&text=Hello"];
^^^^
尝试使用此代码。
abid
表示地址簿ID。现在无论iPhone中的数字是id = 1,它都会选择这个数字。
abid
的问题在于,所有iPhone中该号码的abid都不相同。你的iPhone中的手段abid = 1是12345,但在我的iPhone中,abid = 1是34567.
此外,如果该号码未保存在iPhone中,则无法直接从iOS App发送该号码的whatsapp链接。
答案 2 :(得分:1)
str = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)str,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]"),
kCFStringEncodingUTF8));
答案 3 :(得分:1)