【发布时间】:2014-09-02 20:45:20
【问题描述】:
我已经在这里和网络上走遍了,但我实现的一切都没有奏效。我正在使用 UIWebview 构建一个 iPhone 应用程序,因为它最适合这个项目。
我的目标是,当我点击 mailto 链接时,它将调出 MFMailComposeViewController 而不是打开 Mail 应用程序。因为我已经尝试了所有我能找到的解决方案,所以我有两个想法。
在 iOS7 中这不再可能吗?我无法想象会出现这种情况,但我注意到我在这方面找到的大多数想法和教程主要来自几年前。
我是否可能设置了我的 UIWebview 和委托错误?如果是这种情况,我将链接到屏幕截图。
感谢任何帮助。我会分享所有我尝试过的东西的链接,但我的评分还不够高,无法堆积在链接上。
感谢您的帮助。
编辑
我仍在努力解决这个问题。我以为我更接近了,但仍然无法使其正常工作。目标仍然是从 UIWebview 内部调用 MFMailComposeViewController。让我给出更多细节。 1. 我使用的是邮寄表格。
我正在使用一个由锚标记包围的图像作为我的提交按钮,并带有一些 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;
}
}
不过,邮件应用程序中的所有内容仍处于打开状态。有什么想法吗?
【问题讨论】:
-
显示您处理“mailto:”链接的相关代码。
-
这是我处理mailto的代码:链接。
-
我根据我今天所做的更新了我的代码并提供了更多细节。
标签: objective-c uiwebview mfmailcomposeviewcontroller mailto