Hello, You cannot implement protocol at runtime (either in Objective-C or in .NET). If you want to use the WebScripting protocol through the IWebScripting interface, you have to find out which class implements it, and how to obtain it.
I have found some samples on calling JavaScript from Cocoa, but not the other way. Maybe you can take a look at the bridges (JS <-> Cocoa) from the Apple website ? Regards, Laurent Etiemble. 2010/5/25 Eric Slosser <eric.slos...@v-fx.com> > I've found Monobjc.WebKit.IWebScripting, a sub-class of IManagedWrapper. > It's marked as [ObjectiveCProtocol("WebScripting")]. I'm now looking for > clues on how to use this class (or should I call it an 'interface'?) > > > On May 24, 2010, at 2:43 PM, Eric Slosser wrote: > > > I'm porting a .NET app that uses the WebBrowser control, and has > Javascript that calls back into the C#. > > > > It does this by stating "[ComVisible(true)] public class Foo { }", by > having an member variable 'browser' of type System.Windows.Forms.WebBrowser" > in Foo, and by calling "browser.ObjectForScripting = this" in Foo's > constructor. After those steps, the JavaScript can call back into > Foo.Callback by calling "window.external.Callback()". > > > > On Cocoa/WebKit, that would be done by implementing the WebScripting > protocol in an object (the 4 methods that define how the selectors in Foo > are exposed to JavaScript) , then calling [someWebScriptObject > setValue:someFoo forKey:@"external"], then the JavaScript would be able to > call window.external.Callback_(). > > > > I'm trying (and failing) to figure out how to implement the 4 methods of > the WebScripting protocol so that they'll get called by Webkit. Two of them > return NSString*, and the "no op" case of returning nil is allowed. > > > > Will I be able to define these 4 in C#, or will I need to create a pure > ObjectiveC object for this? > > > > Thanks in advance. > >