在WhatsApp中分享YouTube链接

时间:2013-08-22 09:11:52

标签: ios iphone objective-c whatsapp

我正在尝试与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打开时,消息框为空。知道为什么会这样吗?

4 个答案:

答案 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)

我知道这是一个老帖子,但没有找到任何可接受的问题答案,所以我发布了我的答案。有时这可能对某人有帮助。

在我的应用程序中,我试图通过WhatsApp分享我的应用程序的AppStore链接。但WhatsApp打开消息框为空。所以我尝试在编码链接后发送链接,认为WhatsApp阻止链接,因为它包含特殊字符。但它对我也没有用。

最后,我通过使用Bitly缩短链接找到了解决方案。您可以使用Bitly为任何链接创建一个短链接,并且可以将这些链接分享给WhatsApp而不会有任何问题。