Sous Windows, lorsque le contrôle ActiveX "Shell.Explorer" est incorporé dans une application, il est possible d'enregistrer un gestionnaire "externe" qui implémente IDispatch, de sorte que les scripts de la page Web puissent appeler l'application d'hébergement .Embedded Webkit - callbacks de script comment?
<button onclick="window.external.Test('called from script code')">test</button>
Maintenant, ive déplacé au développement Mac et pensé que je pourrais obtenir quelque chose de semblable travail de WebKit intégré dans mon application Cocoa. Mais, il ne semble vraiment pas y avoir de possibilité d'autoriser les scripts à rappeler à l'application d'hébergement.
Un conseil était d'accrocher window.alert
et obtenir des scripts pour passer une chaîne de message formatée comme chaîne d'alerte. Je me demande également si WebKit peut peut-être être dirigé vers un plugin NPAPI hébergé par une application en utilisant NPPVpluginScriptableNPObject.
Ai-je raté quelque chose? Est-ce vraiment difficile d'héberger un WebView et d'autoriser les scripts à interagir avec l'hôte?
Est-ce que [webView mainFrame] loadData: déclenche l'objet didClearWindowObject:? J'ai le [webView setFrameLoadDelegate: self]; setup mais ceci ne configure pas windowScriptObject quand j'essaye un point d'arrêt. – Luke
Je l'ai fait fonctionner de cette façon, mais comment appelez-vous un gestionnaire (fonction JS) de Cocoa, comme un rappel que quelque chose est arrivé dans Cocoa. Bien sûr, vous pouvez obtenir 'windowScriptObject' à partir de' WebView', mais est-il possible pour 'Cocoa' de savoir à quelle instance' WebScriptObject' il appartient? –
Excellent. Merci! ;-) –