2009-12-16 11 views
8

c'è qualcosa di strano nel mio codice. Sono sicuro di dimenticare qualcosa ma non so cosa. Cerco di gestire il telefono, i collegamenti mailto e http in un UIWebView.Rilevamento dei collegamenti telefonici UIWebView su iPhone

Ecco come provo:

1/istanziare UIWebView:

webview = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,460)]; 
webview.opaque = NO; 
webview.backgroundColor = [UIColor clearColor]; 
webview.userInteractionEnabled = YES; 
webview.dataDetectorTypes = UIDataDetectorTypeAll; 

2/impostare il delegato appropriata:

[webview setDelegate: self]; 

3/implementare il metodo delegato (versione semplificata qui):

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

    NSURL *requestURL = [[ request URL] retain]; 
    NSLog(@">>> %@", [requestURL scheme]); 
    [requestURL release]; 
    return YES; 
} 

Con il mio dispositivo di debug quando tocco un collegamento http, viene stampato NSLog. Quando tocco un collegamento tel ho questo tipo di messaggio di conferma:

alt text http://cahripub.com/images/bug.gif

Con l'iPhone Simulator, tel e HTTP collegamenti siano correttamente stampato da NSLog.

Strano, no?

+0

precisione, ho provato whith ogni valori dataDetectorTypes! – lefakir

+0

Ho provato con sms e collegamenti mailto. Sono anche correttamente stampati da NSLog. – lefakir

risposta

5

Per chi cerca in questa ora, questo lo farà:

self.webView.dataDetectorTypes = UIDataDetectorTypeNone; 
Problemi correlati