ios – 使用WhatsApp URL方案将文本与文本一起发送

我正在尝试使用WhatsApp的自定义URL方案发送一些带有URL的文本.显然只有一个有效的参数用于此目的:文本:
NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=Hello%2C%20World!"];

当我想将自己的URL附加到该文本时,就会出现问题.我选择使用以下代码对其进行编码:

Nsstring *encodedURLString = (Nsstring *)CFBridgingrelease(CFURLCreateStringByAddingPercentEscapes(
                                                                                  NULL,(CFStringRef)urlAbsoluteString,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kcfStringEncodingUTF8 ));

该URL与文本一起发送到WhatsApp,但不会在WhatsApp的一侧解码:

有任何想法吗?谢谢!

解决方法

您正确地接近它,但似乎URL正在进行双重编码.确保消息和URL仅编码一次.

使用相同的编码方法,您可以这样做:

Nsstring *urlAbsoluteString = @"Hello World! http://yayvisitmysiteplease.com?funky=parameter&stuff";
Nsstring *encodedURLString = ...

这应该给你执行的URL:

whatsapp://send?text=Hello%20World%21%20http%3A%2F%2Fyayvisitmysiteplease.com%3Ffunky%3Dparameter%26stuff

这就像你期望的那样进入WhatsApp. (我证实了双重确定.)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...