Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Cocoa中解析mailto URL的现成解决方案?_Ios_Iphone_Cocoa Touch_Uiwebview_Mailto - Fatal编程技术网

Ios Cocoa中解析mailto URL的现成解决方案?

Ios Cocoa中解析mailto URL的现成解决方案?,ios,iphone,cocoa-touch,uiwebview,mailto,Ios,Iphone,Cocoa Touch,Uiwebview,Mailto,我在iPhone应用程序中有一个UIWebView,想截取结构化的mailto URL,比如mailto:email@address.com?subject=foo&body=bar以便在应用程序内显示MFMailComposeViewController,而不是将URL交给Mail.app 现在,如果能根据mailto URL自动设置MFMailComposeViewController的所有属性,那就太好了。不幸的是,MFMailComposeViewController不接受mailto

我在iPhone应用程序中有一个
UIWebView
,想截取结构化的mailto URL,比如
mailto:email@address.com?subject=foo&body=bar
以便在应用程序内显示
MFMailComposeViewController
,而不是将URL交给Mail.app

现在,如果能根据mailto URL自动设置
MFMailComposeViewController
的所有属性,那就太好了。不幸的是,
MFMailComposeViewController
不接受mailto URL,但需要设置各个属性

NSURL显然也帮不上什么忙。您是否知道任何现有代码,这样我就不必编写解析器代码了?;)

你想要。

写了我自己的解决方案:
这有点难看,而且在RFC支持方面可能不是100%万无一失,但只要mailto URL的语法由您自己控制,它就可以正常工作。

Ortwin,谢谢您的代码。我使用它来添加对canSendMail方法的检查,并将其添加为MFMailComposeViewController的一个类别。请在这里找到:

除了
NSDataDetector
仅为iOS 4.x,而且我需要与OS 3.x兼容之外,我如何使用它来完成任务?我知道NSDataDetector可以识别任意文本中的电子邮件地址。这不是我想要的。我已经有一个结构化的mailto链接,如下所示:
mailto:email@address.com?主题=foo&body=bar
。所以它只是关于分割参数和填充字段。其实没什么大不了的,但如果它已经存在,我还是懒得再写一遍。@Ortwin:如果你的操作系统上没有它,那么如何使用它的问题就没有意义了。就像拿破仑和大炮的故事,不完全一样。我真的很感兴趣,因为我还不太熟悉数据检测器。对于这个例子,我编写了一些代码来解决这个问题。看看我的答案。正如他所说的,我们不会做奥特温想做的事;已检测到数据。谢谢。我同意,将其作为一个类别添加到
MFMailComposeViewController
中可能是更好的设计。更干净的做法是使用
NSURL
参数而不是
NSURLRequest
。关于NSURL,您是对的,我没有注意到它。:/我已经修好了。非常感谢。