无法在Whatsapp上分享文本

3
我正在使用以下代码从我的iOS应用程序分享文本到WhatsApp。
        NSString *textToSend = [NSString stringWithFormat:@"whatsapp://send?text=%@", self.theTextView.text];
        NSURL *whatsappURL = [NSURL URLWithString:textToSend];

        if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {
            [[UIApplication sharedApplication] openURL: whatsappURL];
        }else{
            [[[UIAlertView alloc] initWithTitle:nil message:@"Whatsapp not isntalled on this device! Please install first." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil]show];
        }

这并不按照预期工作。

如果我像这里所解释的那样做,它可以正常工作。

        NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=Hello%2C%20World!"];
2个回答

8

Matteo Pacini你的答案不正确,

你需要添加PercentEscapes(stringByAddingPercentEscapesUsingEncoding:),而不是替换PercentEscapes(stringByReplacingPercentEscapesUsingEncoding:)。

string = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

2

我猜测self.theTextView.text没有进行URL编码。

解决方法:

string = [string stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

假设您正在使用UTF8。

一个URL不能包含特殊字符(例如,空格' '将被转换为'%20')。您需要解析文本并用有效的字符替换这些字符。 - Matteo Pacini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接