Question

Comment puis-je apparaître le Web de Webkit Inspecteur de mon objet WebView programme?

Je réussissais pour activer l'inspecteur Web de Webkit sur mon WebView. Il fonctionne bien, et maintenant je peux pop up en cliquant sur « Inspecter l'élément » dans le menu contextuel. Et je veux le faire avec mon bouton-poussoir. Mais je ne pouvais pas trouver une bonne façon de le faire. Ma connaissance DOM est de 10 ans, débutant très sur HTML DOM de nos jours. Est-il possible de le faire?

J'ai trouvé un document de classe: InspectorController . Je pense que cela est une sorte de clé. Mais je ne peux pas savoir quel objet et comment expose-je utiliser cela.

Environnement:

  • Mac OS X 10.6
  • Xcode 3.2.1 (iPhone SDK, aucun plug-in)
Était-ce utile?

La solution

Il n'y a pas d'API publique pour interagir avec le WebInspector via le DOM ou de cacao. Vous devez déposer une demande d'amélioration https://bugreport.apple.com/ demandant cette API.

InspectorController est aussi un détail de mise en œuvre interne du WebInspector et il est probable un bug que son sur le site Web de la documentation.

Autres conseils

Voici un code qui devrait vous aider à ouvrir de cacao programme:

@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];
  }
}

Pour étendre au dom, juste exposer cette fonction à JS.

Pour ceux désorientés par la réponse de Maccaw @ Alex (il est c ++), voici une version plus "normale" ..

dans votre fichier .m ... déclarer les méthodes d'en-tête de WebInspector ..

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

Ensuite, dans ce même fichier, que ce soit votre délégué app, ou sous-classe WebView, ou tout ... déclarer Ivar à « tenir votre inspecteur, et faire une méthode pour l'ouvrir, en utilisant votre vue web par exemple ou des biens, ou autre. ...

@implementation AppController  { WebInspector *_inspector; }

- (IBAction)showInspector:(id)x {
   _inspector = _inspector = [WebInspector.alloc initWithWebView:_myWebView];
  [_inspector      detach:_myWebView];
  [_inspector showConsole:_myWebView];
}
....
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top