Hi Phil, I've done something similar a while ago : let gPodder handle "Subscribe to RSS feed" from Firefox. But I resorted to Carbon.AppleEvents to do it (deprecated I'm afraid). In case you want to check it out, here it is : http://repo.or.cz/w/gpodder.git/blob/refs/heads/master:/src/gpodder/gpodderosx.py and http://repo.or.cz/w/gpodder.git/tree/refs/heads/master:/data/osx Le 25/08/10 08:23, Phillip Heller a écrit : Did you try with your application not open ?Greetings, I'm wondering if anyone has implemented a Custom URL Handler within a pygtk project? It doesn't look like gtk provides a method to do this directly, so I'm trying with pyobjc and the Foundation classes. An example of how I'm trying to do it: import Foundation TRYTONSCHEME = u'tryton' WINDOW = none class TrytonURLProtocol(Foundation.NSURLProtocol): def canInitWithRequest_(cls, request): if request.URL().scheme() == TRYTONSCHEME: return True return False def canonicalRequestForRequest_(cls, request): return request def startLoading(self): m = re.search('tryton://([^/]+)/(\d+)', self.request()) if m is not None: Window.create(False, m.group(1), [int(m.group(2))], [], 'form', mode=['form'], window=WINDOW) def stopLoading(self): pass class Main(object): def __init__(self): super(Main, self).__init__() self.window = gtk.Window() WINDOW = self.window <snip snip snip> <the following line called at a point where the application can satisfy a URL request> Foundation.NSURLProtocol.registerClass_(TrytonURLProtocol) I've added the following to the Application Bundle Info.plist: <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLName</key> <string>MyApp's URL</string> <key>CFBundleURLSchemes</key> <array> <string>tryton</string> </array> </dict> </array> Whenever I open a url like "tryton://sale.order/12345", the application gains focus, though nothing seemingly happens within the application itself. From what I understand of your code, it's not possible, but my code doesn't work when the application is open (the event is not received). The fact that your application gains focus is encouraging. Maybe, when you'll be able to see debug output, it'll be easier to figure out (see next bullet). Did you check in console.log (via /Applications/Utilities/Console) ?I'm not sure how exactly to debug this either -- normally I do my development within Eclipse with pydev, though I'm not sure how to do that with a bundled application. Any attempts to print to STDOUT within TrytonURLProtocol methods seem to fail. Hope this helps, Eric |