【发布时间】:2012-02-02 15:49:13
【问题描述】:
我正在尝试创建一个事件,当在 webView 中的网站上按下特定按钮时,该事件将被调用(并将在 iPhone 上执行 Objective-c 代码)。 我认为的简单方法是监听 webView 的 HTTP 请求。 我可以这样做吗?
【问题讨论】:
标签: objective-c webview
我正在尝试创建一个事件,当在 webView 中的网站上按下特定按钮时,该事件将被调用(并将在 iPhone 上执行 Objective-c 代码)。 我认为的简单方法是监听 webView 的 HTTP 请求。 我可以这样做吗?
【问题讨论】:
标签: objective-c webview
在您的 HTML 中,为 URL 提供一个特殊的方案。在本例中,方案为perform:
<!-- ontouchstart tells WebKit to send us mouse events on a touch platform so we can use :active -->
<button class="button" ontouchstart="" onclick="window.open('perform:MAX')">MAX</button>
(您可以在此处使用<a href 或其他技术。此示例来自使用onclick 有用的代码。)
将您的控制器设置为UIWebView 的代理。然后实现这个委托方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = request.URL;
if ([[url scheme] isEqualToString:@"perform"])
{
// url.resourceSpecifier will be @"MAX" in this example
// Do something with it.
return NO;
}
return YES;
}
【讨论】: