2010-12-23 6 views
2

In einer nativen iPhone App verwende ich eine UIWebView, um eine Webseite zu laden.Wie verwende ich Javascript um mit Objective-c Code zu kommunizieren?

Ich möchte JavaScript in der Webseite verwenden, um mit dem Objective-C-Code zu kommunizieren, zum Beispiel eine Funktion in Objective-C-Code aufrufen.

Gibt es eine Möglichkeit, dies zu implementieren?

+0

einen Blick auf phonegap nehmen, verwenden sie die uRL – Thomas

Antwort

7

Es gibt keine „direkten“ Weg, dies zu tun, aber Sie könnte nutzen die UIWebViewDelegate und Trap ein Link mit einem benutzerdefinierten Schema, so in Ihrem Markup, können Sie so etwas schreiben würde:

<a href="myapp://app_action?doSomething">Do Something</a> 

Dann in Ihrem UIWebViewDelegate ‚s -webView:shouldStartLoadWithRequest:navigationType: Methode, so etwas schreiben:

- (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; 
} 
+0

dank zu kommunizieren, es half mir sehr. – pradeepa

Verwandte Themen