Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: When embedded Flash opens a URL, how can webkit intercept it?



Well I thought I'd answer my own question here for posterity. I did a lot of digging around with breakpoints in the Webkit source and found out what's going on.

Basically, I needed to implement the UI delegate method webView:createWebViewWithRequest: since what was happening is that the Flash content was asking for a URL to be loaded at the "_blank" frame.

Since my goal was to pass the URL to NSWorkspace, I still had a bit of trickery. The above method actually passes in a nil for the NSURLRequest parameter, so I couldn't just grab the URL right there. So what I wound up doing was returning a new "proxy" WebView and WebFrame that responded to just the bare minumum methods needed: mainFrame, _setTopLevelFrameName:, _UIDelegateForwarder, and loadRequest: ... the latter is where I then actually passed off the URL to be opened by NSWorkspace.

Kind of a hack, but it worked. No wonder nobody had an easy answer for me!





On Oct 15, 2005, at 9:41 PM, Dan Wood wrote:

I have a webkit application playing embedded Flash content which, under Safari, open external URLs (sometimes in a separate window, if that matters.)

I want to intercept those calls -- I was trying webView:decidePolicyForNavigationAction:request:frame:decisionListener : and webView:decidePolicyForNewWindowAction:request:newFrameName:decisionLi stener:
-- but these aren't invoked.


Any idea how to catch and process the clicks? (My goal is to send them to open with NSWorkspace methods...)

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webkitsdk-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webkitsdk-dev/email@hidden

This email sent to email@hidden
References: 
 >When embedded Flash opens a URL, how can webkit intercept it? (From: Dan Wood <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.