Ich beschreibe kurz mein Problem:
1. Ich habe UITextView, der URLs erkennt.
2. Ich möchte, dass die Links aus dem UITextView nicht in Safari, sonder in meinem
UIWebView geöffnet werden. Darum habe ich folgende Klasse implementiert:
Alles anzeigen
3. Wenn im UITextView ein Link angecklickt wird, wird die Methode
- (BOOL)openURL:(NSURL*)url aufgerufen, und mein WebView lädt die Seite.
4. In der App habe ich noch eine Anruffunktion, und genau die Funktioniert nicht.
Wenn ich meine Methode - (BOOL)openURL:(NSURL*)url auskommentiere, kann
ich anrufen, aber die Links im UITextView öffnen sich dann im Safari-Browser.
Jetzt die Frage: wie macht man es so, dass Anrufen und Links im UITextView in
eigenem UIWebView sich öffnen.
1. Ich habe UITextView, der URLs erkennt.
2. Ich möchte, dass die Links aus dem UITextView nicht in Safari, sonder in meinem
UIWebView geöffnet werden. Darum habe ich folgende Klasse implementiert:
Quellcode
- @interface UIApplication (Private)
- - (BOOL)openURL:(NSURL*)url;
- @end
- @implementation UIApplication (Private)
- - (BOOL)openURL:(NSURL*)url {
- if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) {
- WebViewController *mWebViewController = [[WebViewController alloc] initWithUrl:mUrl];
- UINavigationController *controller = ... // get navigationController
- [controller pushViewController:mWebViewController animated:YES];
- [controller release];
- return NO;
- }
- return YES;
- }
- @end
3. Wenn im UITextView ein Link angecklickt wird, wird die Methode
- (BOOL)openURL:(NSURL*)url aufgerufen, und mein WebView lädt die Seite.
4. In der App habe ich noch eine Anruffunktion, und genau die Funktioniert nicht.
Wenn ich meine Methode - (BOOL)openURL:(NSURL*)url auskommentiere, kann
ich anrufen, aber die Links im UITextView öffnen sich dann im Safari-Browser.
Jetzt die Frage: wie macht man es so, dass Anrufen und Links im UITextView in
eigenem UIWebView sich öffnen.