如何从html / javascript调用MainViewController.h方法? (IOS Phonegap)

时间:2013-12-21 08:32:31

标签: javascript ios objective-c jquery-mobile cordova

我是IOS phonegap的新手。在我的应用程序中,我需要从我的应用程序发送邮件。所以我正在使用" mailto"功能它工作正常,但问题是在发送邮件后,它不会返回到我的应用程序,它只停留在邮件应用程序中。我该如何解决这个问题。

如果我使用以下代码发送邮件而不是" mailto"如何从我的html / javascript链接到" Mainviewcontroller.h"点击按钮。以及如何将参数从javascript / html传递给" Mainviewcontroller.h"类。

NSString *subject = @"Message subject";
NSString *body = @"Message body";
NSString *address = @"test1@akosma.com";
NSString *cc = @"test2@akosma.com";
NSString *path = [NSString stringWithFormat:@"mailto:%@?cc=%@&subject=%@&body=%@", address, cc, subject, body];
NSURL *url = [NSURL URLWithString:[path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];

请提供一些建议或指导我一些很好的教程来解决我的问题。

提前致谢..

1 个答案:

答案 0 :(得分:1)

如果不使用Objective C,则无法从JavaScript调用UIWebView方法。

您可以使用UIWebView执行此操作,如下所示:

在您的JavaScript文件中:

...
 window.location.href = "doSomething;";
..

编辑:

MainViewController.m中,您可以在MainViewController.m's viewDidload中添加“虚假”的UIWebView,如下所示:

 - (void)viewDidLoad{
        UIWebView *webView = [UIWebView alloc] init];
        webView.hidden = YES;
        webView.delegate = self;
       [sel.view addSubView:webView];

        // Know you should load the JavaScript witch contain the script.
        [webView loadHTMLString:...];
   }

MainViewController符合UIWebViewDelegate

现在位于UIWebViewDelegateMainViewController.m)对象中:

 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

    if ([request.URL.absoluteString isEqualToString:doSomething]) {
            // Here you can call what you want
            return NO;
        }
        return YES;
    }