2012-12-27 29 views
-1

调用一个简单的Objective-C的功能可能重复:
How to call an Objective-C method from Javascript in a Cocoa/WebKit app?如何从Javascript

如何从JavaScript调用一个简单的Objective- C函数。 说我有一个功能:

- (无效){callFromJavascript
//如何从一个JavaScript函数中调用目标-C的这种方法。

}

+0

检查此链接你会得到你的答案http://blog.techno-barje.fr/post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/ – SSP

+0

我使用的答案在这里:http://stackoverflow.com/a/2293305/105539在我的评论下面,我展示了如何做到这一点更容易。 – Volomike

回答

0

一种机制是拦截document.location变化(并取消),并调用你的方法时所要求的改变document.location您预定义的URL匹配。

然后从JS中,您只需将document.location更改为该预定义的URL。

拦截变化覆盖:

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

,并返回NO时request匹配你在JS作为document.location设置什么。

+0

查看Samarth Pandey的回答。这是一个更好的方法。 – sqreept