【问题标题】:How to use Javascript to communicate with Objective-c code?如何使用 Javascript 与 Objective-c 代码进行通信?
【发布时间】:2011-05-29 20:14:33
【问题描述】:

在原生 iPhone 应用程序中,我使用 UIWebView 加载网页。

我想在网页中使用 JavaScript 与 Objective-C 代码进行通信,例如调用 Objective-C 代码中的函数。

有什么方法可以实现吗?

【问题讨论】:

  • 看看phonegap,他们用url来交流

标签: javascript objective-c uiwebview


【解决方案1】:

没有“直接”的方法可以做到这一点,但您可以利用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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2013-10-17
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2012-12-04
    • 2012-05-06
    相关资源
    最近更新 更多