sirve que para cocoa webkit webview web-inspector

cocoa - uiwebview para que sirve



¿Cómo puedo abrir el Web Inspector de Webkit desde mi objeto WebView programáticamente? (3)

¿Cómo puedo abrir el Web Inspector de Webkit desde mi objeto WebView programáticamente?

Logré habilitar el Web Inspector de Webkit en mi WebView. Está funcionando bien, y ahora puedo abrirlo haciendo clic en "Inspeccionar elemento" en el menú contextual. Y quiero hacer esto con mi botón. Pero no pude encontrar una manera adecuada de hacer esto. Mi conocimiento DOM tiene 10 años, es muy novato en HTML DOM de hoy en día. ¿Hay alguna manera de hacer esto?

Encontré un documento de clase: InspectorController . Creo que este es un tipo de llave. Pero no puedo saber qué objeto expone y cómo puedo usar esto.

Ambiente:

  • Mac OS X 10.6
  • Xcode 3.2.1 (iPhone SDK, sin plug-in)

No hay una API pública para interactuar con el WebInspector a través del DOM o Cocoa. Debe presentar una solicitud de mejora en https://bugreport.apple.com/ solicitando esta API.

InspectorController es también un detalle de implementación interna del WebInspector y es probable que se trate de un error que se encuentra en el sitio web de la documentación.


Aquí hay un código que debería ayudarlo a abrirlo desde el cacao programáticamente:

@interface WebInspector : NSObject { WebView *_webView; } - (id)initWithWebView:(WebView *)webView; - (void)detach:(id)sender; - (void)show:(id)sender; - (void)showConsole:(id)sender; @end void MyWebKit::ShowInspector(bool console){ if ( !m_webView ) return; if( !m_inspector ){ m_inspector = [[WebInspector alloc] initWithWebView:m_webView]; [m_inspector detach:m_webView]; } if(console){ [m_inspector showConsole:m_webView]; } else { [m_inspector show:m_webView]; } }

Para extenderlo a la dom, solo expone esta función a JS.


Para aquellos confundidos por la respuesta de @alex MacCaw (es c ++), aquí hay una versión más "normal".

en su archivo .m ... declare los métodos de encabezado WebInspector ...

@interface WebInspector : NSObject { WebView *_webView; } - (id)initWithWebView:(WebView *)webView; - (void)detach: (id)sender; - (void)show: (id)sender; - (void)showConsole:(id)sender; @end

Luego, en ese mismo archivo, ya sea su delegado de aplicación, o subclase WebView, o lo que sea ... declare un ivar para "mantener su inspector, y cree un método para abrirlo, utilizando SU instancia o propiedad de vista web, o lo que sea. ..

@implementation AppController { WebInspector *_inspector; } - (IBAction)showInspector:(id)x { _inspector = _inspector = [WebInspector.alloc initWithWebView:_myWebView]; [_inspector detach:_myWebView]; [_inspector showConsole:_myWebView]; } ....