Su Windows, quando il controllo ActiveX "Shell.Explorer" è incorporato in un'applicazione è possibile registrare un gestore "esterno" - su un oggetto che implementa IDispatch, in modo tale che gli script nella pagina Web possano richiamare l'applicazione di hosting .Webkit incorporato - callback di script come?
<button onclick="window.external.Test('called from script code')">test</button>
Ora, Ive si trasferì a sviluppo Mac e pensavo di poter ottenere qualcosa di simile di lavoro da parte di WebKit incorporato nella mia applicazione Cocoa. Ma sembra che non ci sia alcuna possibilità di consentire agli script di richiamare l'applicazione di hosting.
Un consiglio era di agganciare window.alert
e ottenere script per passare una stringa di messaggio formattata come stringa di avviso. Mi chiedo anche se WebKit può essere indirizzato a un plug-in NPAPI ospitato dall'applicazione utilizzando NPPVpluginScriptableNPObject.
Mi manca qualcosa? È davvero così difficile ospitare una WebView e consentire agli script di interagire con l'host?
Does [webView mainFrame] loadData: attiva il didClearWindowObject:? Ho il [webView setFrameLoadDelegate: self]; configurazione, ma questa non è la configurazione di windowScriptObject quando provo un breakpoint. – Luke
L'ho eseguito in questo modo, ma come si chiama un gestore (funzione JS) da Cocoa, come una richiamata che qualcosa è successo in Cocoa. Ovviamente è possibile ottenere 'windowScriptObject' da' WebView', ma esiste un modo per 'Cocoa' di sapere a quale istanza' WebScriptObject' appartiene? –
Ottimo. Grazie! ;-) –