Auf Ereignisse in einem UIWebView (iOS) warten

8

Ich versuche, auf einer Webseite, die ich in einer UIWebView in meiner iOS-App geöffnet habe, auf ein Ereignis (insbesondere einen Klick auf eine Schaltfläche) zu warten. Ich weiß, dass es in anderen Sprachen Möglichkeiten gibt, Ereignis-Listener an bestimmte Web-Aufrufe anzuhängen, aber ich habe noch keinen Weg gefunden, dies in Objective-C zu tun. Ich habe auch niemanden online gefunden, der sagt, dass nicht gemacht werden kann, also entschied ich, dass ich fragen sollte. Ich habe in der Dokumentation gesehen, dass Sie Objective-C-Aufrufe von Javascript ausführen können, aber ich habe keine Kontrolle über die Webseite, die ich überwachen möchte. Also brauche ich eine Lösung, die es mir ermöglicht, in Objective-C auf dieses Ereignis vollständig zu hören.

BEARBEITEN: Wenn Details helfen würden, versuche ich dem Nutzer zu erlauben, einen Facebook-Beitrag zu erstellen. Ich lade die Facebook-Sharer-Seite in eine UIWebview (http://www.facebook.com/sharer/sharer.php?u=) und möchte überwachen, wenn der Benutzer auf "Share Link" klickt, damit ich die Web-Ansicht schließen kann .

Vielen Dank für Ihre Zeit!

    
WendiKidd 07.12.2011, 21:29
quelle

2 Antworten

11

Sie können das UIWebViewDelegate verwenden:

%Vor%

Die Werte für den UIWebViewNavigationType lauten:

%Vor%

Kann dies überprüfen und dann die NSURLRequest anschauen, um Informationen darüber zu erhalten

    
tiltem 07.12.2011 21:49
quelle
5

Verwenden Sie ein benutzerdefiniertes Schema. Wenn der Benutzer auf die Schaltfläche klickt, pingen Sie eine URL mit dem benutzerdefinierten Schema (myScheme: // buttonTapped) und entweder:

  1. Fangen Sie dies in der Webview-Delegate-Methode shouldStartLoadWithRequest... (dh prüfen Sie, ob die URL Ihr benutzerdefiniertes Schema enthält) und leiten Sie sie an den entsprechenden Ziel-C-Selektor weiter. Oder

  2. Registrieren Sie ein benutzerdefiniertes URL-Protokoll und richten Sie es für die Verarbeitung Ihres benutzerdefinierten URL-Schemas ein. Etwas wie das Folgende:

%Vor%     
Alfie Hanssen 26.03.2013 18:13
quelle