我已经遍布这里和网络,我已经实施的任何工作都没有。我正在使用UIWebview构建iPhone应用程序,因为它最适合这个项目。
我的目标是,当我点击mailto链接时,它将调出MFMailComposeViewController而不是打开Mail应用程序。因为我已经尝试了所有可以找到的解决方案,我有两个想法。
在iOS7中这是不可能的?我无法想象这种情况,但我注意到我发现的大部分想法和教程主要来自几年前。
我是否可以设置我的UIWebview并委托错误?如果是这种情况,我会给屏幕截图添加一个链接。
感谢任何帮助。我会分享我尝试过的所有链接,但是我的评级还不够高,还没有链接到链接上。
感谢您的帮助。
修改
我仍在努力解决这个问题。我以为我离我更近了,但仍然无法让它发挥作用。目标仍然是从UIWebview中调用MFMailComposeViewController。让我来说明一些细节。 我正在使用mailto表单。
我正在使用一个由锚标记包围的图像作为我的提交按钮,并使用一些javascript来提交。
表单提交,邮件应用程序正常。
我想也许我的问题是这不是一个真正的mailto链接,所以我尝试了这个。 我的HTML
<a href="inapp://javascript:void(0)" class="intruder"><img src="button.png" /></a>
我的ViewController.m代码
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([request.URL.scheme isEqualToString:@"inapp"]) {
if ([request.URL.host isEqualToString:@"javascript:void(0)"]) {
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
[mailer setToRecipients:[NSArray arrayWithObject:request.URL.resourceSpecifier]];
NSString *body = @"";
[mailer setMessageBody:body isHTML:NO];
[self presentModalViewController:mailer animated:YES];
}
return NO;
}
return YES;
}
}
但邮件应用程序中的所有内容仍在打开。有什么想法吗?
答案 0 :(得分:1)
我明白了。我没有正确设置webview委托。我以为我的头文件中有。然后我在我的viewdidload方法中将委托设置为self,一切正常。
之前我曾尝试过,我猜我输错了,因为我的文件无法加载。无论如何,现在一切都工作了。