【发布时间】:2011-05-29 20:14:33
【问题描述】:
在原生 iPhone 应用程序中,我使用 UIWebView 加载网页。
我想在网页中使用 JavaScript 与 Objective-C 代码进行通信,例如调用 Objective-C 代码中的函数。
有什么方法可以实现吗?
【问题讨论】:
-
看看phonegap,他们用url来交流
标签: javascript objective-c uiwebview
在原生 iPhone 应用程序中,我使用 UIWebView 加载网页。
我想在网页中使用 JavaScript 与 Objective-C 代码进行通信,例如调用 Objective-C 代码中的函数。
有什么方法可以实现吗?
【问题讨论】:
标签: javascript objective-c uiwebview
没有“直接”的方法可以做到这一点,但您可以利用UIWebViewDelegate 并使用自定义方案捕获链接,因此在您的标记中,您可以编写类似这样的内容:
<a href="myapp://app_action?doSomething">Do Something</a>
然后,在您的UIWebViewDelegate 的-webView:shouldStartLoadWithRequest:navigationType: 方法中,编写如下内容:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if([[[request URL] scheme] isEqualToString:@"myapp"]) {
SEL selector = NSSelectorFromString([[request URL] query]);
if([self respondsToSelector:selector]) {
[self performSelector:selector];
} else {
//alert user of invalid URL
}
return NO;
}
return YES;
}
【讨论】: