在我的应用程序内打开mailto链接而不是邮件应用程序

问题描述:

我已经走遍了这里和网络,没有我已经实施的工作。我正在使用UIWebview构建iPhone应用程序,因为它最适合此项目。在我的应用程序内打开mailto链接而不是邮件应用程序

我的目标是,当我点击一个mailto链接它将打开MFMailComposeViewController而不是打开邮件应用程序。因为我尝试了所有可以找到的解决方案,所以我有两个想法。

  1. 在iOS7中,这不再可能吗?我无法想象这种情况,但我注意到,我发现的大多数想法和教程主要来自几年前。

  2. 我可能设置了我的UIWebview并委托错了吗?如果是这种情况,我正在链接到屏幕截图。

任何帮助表示赞赏。我会分享所有我尝试过的东西的链接,但是我的评分还不够高,无法堆砌在链接上。

感谢您的帮助。

Screenshot

编辑

我仍然有这个问题摔跤。我以为我接近了,但仍然无法让这个工作。目标仍然是从UIWebview中调用MFMailComposeViewController。让我给一些更具体的细节。 1.我正在使用mailto表单。

  1. 我正在使用一个由锚标记包围的图像作为我的提交按钮与一些JavaScript,使其提交。

  2. 表单提交和邮件应用程序出现罚款。

  3. 我想也许我的问题是,这不是一个真正的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

显示处理“mailto:”链接的相关代码。 – rmaddy 2014-09-02 21:25:03

+0

有我的处理mailto:链接的代码。 – user2936528 2014-09-02 22:34:26

+0

我根据我今天所做的更新了我的代码,并提供了更多详细信息。 – user2936528 2014-09-03 20:26:18

我想通了。我没有正确设置webview代理。我以为我在我的头文件中。然后我在我的viewdidload方法中将委托设置为self,并且一切正常。

我曾尝试过,我猜我输入错误,因为我的文件不会加载。反正现在所有东西都可以工作了。