2010-03-02 3 views
6

Ich möchte etwas HTML-Inhalt generieren und in ein UIWebView einfügen. Das HTML enthält einige Schaltflächen. Ist es möglich, Aktionen für diese Schaltflächen zu definieren? Ich möchte eine Methode (z. B. FirstButtonPressed) in meinem Ziel-C-Code aufrufen, wenn jemand diese Schaltfläche in der UIWebView drückt.Aufruf einer Methode durch Klicken auf eine Schaltfläche in einem UIWebView

Vielen Dank für Ihre Hilfe.

Antwort

0

Werfen Sie einen Blick auf die phonegap Projekt: www.phonegap.com

Es wurde entwickelt, um diese Art der Sache und mehr zu tun. Wenn überhaupt, werden Sie in der Lage sein, eine Idee zu bekommen, wie dies zu programmieren ist, da das Projekt Open Source ist.

4

Um dies zu verfolgen, ist es möglich und nicht schwierig, HTML/JavaScript-Ereignisse mit objective-c-Methoden zu verbinden.

Damien Berrigaud kam mit einem good example, wie durch die Verwendung file:// Links zu tun, dass

// Map links starting with file:// 
//   ending with #action 
// with the action of the controller if it exists. 
// 
// Open other links in Safari. 
- (BOOL)webView: (UIWebView*)webView shouldStartLoadWithRequest: (NSURLRequest*)request navigationType: (UIWebViewNavigationType)navigationType { 
    NSString *fragment, *scheme; 

    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
    [webView stopLoading]; 
    fragment = [[request URL] fragment]; 
    scheme = [[request URL] scheme]; 

    if ([scheme isEqualToString: @"file"] && [self respondsToSelector: NSSelectorFromString(fragment)]) { 
     [self performSelector: NSSelectorFromString(fragment)]; 
     return NO; 
    } 

    [[UIApplication sharedApplication] openURL: [request URL]]; 
    } 

    return YES; 
} 
1

Dieser Link http://davinc.me/post/45670387932/call-ios-method-for-html-button-click mir helfen, das gleiche Problem zu lösen.

Für die Taste

<a href="didTap://button1"><img src="button1.jpg" /></a> 

Dann werden Delegierte von

UIWebView

und dann

verwenden
- (BOOL)webView:(UIWebView*)aWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSString *absoluteUrl = [[request URL] absoluteString]; 
    if ([absoluteUrl isEqualToString:@"didTap://button1"]) { 
     [self didTapButton1]; 
     return NO; 
    } 
    return YES; 
} 
Verwandte Themen