Ios Cocoa中解析mailto URL的现成解决方案?
我在iPhone应用程序中有一个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
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,您是对的,我没有注意到它。:/我已经修好了。非常感谢。