2011-01-07 9 views
2

Symptom:MacOSX Benutzerdefinierte Webkit Ansicht + Flash-Inhalte mit anklickbaren Links

Ansicht der Flash-Website mit einem beliebigen Browser die Links innerhalb der Flash-Inhalte Arbeit und starten Sie ein neues Fenster den Blitz mit meiner benutzerdefinierten WebView anzuzeigen, klicken Sie die gleiche Links. Keine Antwort.

Ich habe versucht, "decidePolicyForNewWindowAction" und "decidePolicyForNavigationAction" zu delegieren, aber ironischerweise werden diese nur aufgerufen, nachdem ich eine URL aus meinem Code, NICHT als eine Antwort auf den Benutzer den Link von der Seite klicken.

Ich bin sicher, dass die Tatsache, dass dies eine Flash-App Inhalt ist etwas damit zu tun hat. Ich weiß nicht, wie ich das lösen soll. Hilfe wird geschätzt.

Antwort

1

Sie müssen einen UIDelegate für das WebView festlegen und dann - (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request in diesem Delegaten implementieren.

Wenn Sie dann eine Politik Delegierten für den neuen WebView festlegen, die Sie zurückkommen (das WebView kann in einem versteckten Fenster sein), die delegierte Methode, die aufgerufen wird, ist:

- (void)webView:(WebView *)aWebView 
    decidePolicyForNavigationAction:(NSDictionary *)actionInformation 
          request:(NSURLRequest *)request 
           frame:(WebFrame *)frame 
        decisionListener:(id <WebPolicyDecisionListener>)listener` 

Die URL, an die der Flash-App versucht, das Fenster zu senden ist in der WebActionOriginalURLKey des actionInformation Wörterbuch, und Sie können an diesem Punkt entscheiden, ob Sie die Navigation fortsetzen möchten, oder senden Sie eine Ignorieren an die WebPolicyDecisionListener und behandeln Sie die URL auf andere Weise.

+0

Gibt es keine Möglichkeit, eine Vorschau der URL anzuzeigen, BEVOR Sie eine neue Ansicht erstellen/zurückgeben müssen? Was ich an dieser Stelle wirklich machen möchte, ist, einen externen Browser für die Link-URL zu erstellen. Es ist ein bisschen ein Huhn/Ei Problem hier. Ich möchte keine neue Ansicht für die URL erstellen, aber ich kann sie nicht extern starten, weil ich nicht weiß, was es ist, bis ich eine Ansicht dafür erstellt habe (Anfrage ist immer NIL mit der Methode "createWebViewWithRequest") – JasonGenX

+0

Ah, ja ... es ist ein wenig verworren, ich muss zugeben. –

+0

löste es, oder eher umgangen, mit der Flagge, die ich im letzten Kommentar erwähnte. Danke für Ihre Hilfe! – JasonGenX

Verwandte Themen