webView中的按钮执行Objective C方法

时间:2015-03-09 14:56:05

标签: javascript ios webview

UIWebview中有一个按钮,我需要实现在点击此按钮时跳过另一个UIView的功能,换句话说,执行以下功能:[self performSegueWithIdentifier:@“homePage”sender:self]; < / p>

我尝试使用shouldStartLoadWithRequest函数,但它不起作用。如果你能给我看一个小的演示,你会非常感激!感谢。

2 个答案:

答案 0 :(得分:0)

<!--index.html-->
<p>Hello World!</p>
<p><h1>Link</h1>
<a href='appintern://home'>Home</a>
</p>
<p>
<h1>Button</h1>
<form method="post" action="home">
    <button type="submit">Continue</button>
</form>
</p>

将html加载到Web视图中:

// html path
NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
// html data
NSData *htmlData = [NSData dataWithContentsOfFile:htmlPath];
// load html in webview
[self.mainWebView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:nil];

在委托方法中:

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

    if (navigationType == UIWebViewNavigationTypeFormSubmitted) {
        NSString *destination = [request.URL lastPathComponent];
        if ([destination isEqualToString:@"home"]) {
            NSLog(@"go to home");
            //[self performSegueWithIdentifier:@"homePage" sender:self];
            return NO;
        }
    }
    else if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        // todo
    }

    return YES;
}

希望它有所帮助。

答案 1 :(得分:0)

您需要使用网址方案从您的html网页与Obj C进行通信:http://www.macstories.net/tutorials/guide-url-scheme-ios-drafts/

让您的提交按钮打开您将驱动所需结果的URL方案。提示:URL方案实际上是类似API的调用。您希望确保它们包含足够的Idenfying信息,以便可以智能地添加更多方案。