Objective c 在我的应用程序而不是邮件应用程序中打开邮件收件人链接

Objective c 在我的应用程序而不是邮件应用程序中打开邮件收件人链接,objective-c,uiwebview,mfmailcomposeviewcontroller,mailto,Objective C,Uiwebview,Mfmailcomposeviewcontroller,Mailto,我已经在这里和网络上走遍了所有地方,但我所实现的一切都不起作用。我正在使用UIWebview构建一个iPhone应用程序,因为它最适合这个项目 我的目标是,当我点击mailto链接时,它将打开MFMailComposeViewController,而不是打开邮件应用程序。因为我已经尝试了所有我能找到的解决方案,我有两个想法 在iOS7中,这不再可能了吗?我无法想象这种情况,但我注意到,我在这方面找到的大多数想法和教程主要是几年前的 我是否可能设置了UIWebview和代理错误?我把一个链接到一个

我已经在这里和网络上走遍了所有地方,但我所实现的一切都不起作用。我正在使用UIWebview构建一个iPhone应用程序,因为它最适合这个项目

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

  • 在iOS7中,这不再可能了吗?我无法想象这种情况,但我注意到,我在这方面找到的大多数想法和教程主要是几年前的

  • 我是否可能设置了UIWebview和代理错误?我把一个链接到一个截图的情况是这样的

  • 感谢您的帮助。我会分享所有我尝试过的东西的链接,但我的评分还不够高,无法堆积在链接上

    谢谢你的帮助

    编辑

    我仍在努力解决这个问题。我以为我离这更近了,但还是没法让它发挥作用。目标仍然是从UIWebview内部调用MFMailComposeViewController。让我再详细说明一下。 1.我正在使用mailto表单

  • 我使用一个由锚标记包围的图像作为我的提交按钮,并使用一些javascript使其提交

  • 表单提交,邮件应用程序运行正常

  • 我想我的问题可能是这不是一个真正的mailto链接,所以我尝试了这个。 我的HTML

    }


    不过,邮件应用程序中的所有内容仍处于打开状态。有什么想法吗?

    我想出来了。我没有正确设置webview委托。我想我的头文件中有。然后我在viewdidload方法中将委托设置为self,一切都正常


    我以前试过,我想我键入了一些错误,因为我的文件无法加载。无论如何,现在一切都正常了。

    显示处理“mailto:”链接的相关代码。这是我处理mailto:链接的代码。我根据今天所做的更新了代码,并提供了更多详细信息。
    <a href="inapp://javascript:void(0)" class="intruder"><img src="button.png" /></a>
    
     - (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;
    }