7

我正在尝试在 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];
}

但是当 WhatsApp 打开时,消息框是空的。知道为什么会这样吗?

4

4 回答 4

3

如果有人有同样的问题,我找到了答案:

您只需要对 url 进行编码:

NSString *str = [NSString stringWithFormat:youTubeLink,videoId];

str = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
                                                            (CFStringRef)str,
                                                            NULL,
                                                            CFSTR("!*'();:@&=+$,/?%#[]"),
                                                            kCFStringEncodingUTF8);
于 2013-08-22T09:23:27.930 回答
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 中,该数字并不相同。在你的 iPhone 中 abid=1 的意思是 12345,但在我的 iPhone 中 abid=1 是 34567。

此外,如果该号码未保存在 iPhone 中,则您无法直接从 iOS 应用程序发送该号码上的 whatsapp 链接。

于 2013-08-22T09:23:43.377 回答
1
str = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
                                                              (CFStringRef)str,
                                                              NULL,
                                                              CFSTR("!*'();:@&=+$,/?%#[]"),
                                                              kCFStringEncodingUTF8));
于 2015-04-16T09:54:02.433 回答
1

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

在我的应用程序中,我尝试通过 WhatsApp 共享我的应用程序的 AppStore 链接。但是 WhatsApp 将消息框打开为空。所以我尝试在对链接进行编码后发送链接,认为 WhatsApp 阻止了链接,因为它包含特殊字符。但这对我也不起作用。

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

于 2015-07-22T09:01:20.033 回答