WebView オブジェクトからプログラムで Webkit の Web Inspector をポップアップするにはどうすればよいですか?
-
19-09-2019 - |
質問
WebView オブジェクトからプログラムで Webkit の Web Inspector をポップアップするにはどうすればよいですか?
私は成功します Webkit の Web インスペクターを有効にする 私のWebView上で。うまく機能しており、コンテキストメニューの「要素の検査」をクリックするとポップアップできるようになりました。そして、これを押しボタンで実行したいと思います。しかし、これを行うための適切な方法が見つかりませんでした。私の DOM 知識は 10 年前で、最近の HTML DOM に関しては非常に初心者です。これを行う方法はありますか?
クラスのドキュメントを見つけました。 インスペクターコントローラー. 。これも一種の鍵だと思います。しかし、どのオブジェクトが公開されているのか、またこれをどのように使用できるのかがわかりません。
環境:
- Mac OS X 10.6
- Xcode 3.2.1 (iPhone SDK、プラグインなし)
解決
DOMやココアを経由してWebInspectorと対話するためのパブリックAPIはありません。あなたはこのAPIを求め https://bugreport.apple.com/ ので拡張要求を提出する必要があります。
InspectorControllerもWebInspectorとそのマニュアルのWebサイトでその可能性の高いバグの内部実装の詳細です。
他のヒント
ここでは、プログラムでココアからそれを開く助けるべきいくつかのコードです
@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];
}
}
ちょうどJSにこの機能を公開し、DOMにそれを拡張するには。
@alex MacCawの回答で混乱したものについては(それはC ++である)、ここではより多くの "正常な" バージョンである..
あなたの.m
ファイルに... WebInspectorヘッダーメソッドを宣言..
@interface WebInspector : NSObject { WebView *_webView; }
- (id)initWithWebView:(WebView *)webView;
- (void)detach: (id)sender;
- (void)show: (id)sender;
- (void)showConsole:(id)sender;
@end
そして、その同じファイルに、それはあなたのアプリケーションのデリゲート、またはWebViewのサブクラス、またはあることのどんなの...「あなたの検査官を保持し、この方法は使用して、それを開くために作るためにIVARを宣言YOURウェブビューインスタンスまたはプロパティ、または何でも。...
@implementation AppController { WebInspector *_inspector; }
- (IBAction)showInspector:(id)x {
_inspector = _inspector = [WebInspector.alloc initWithWebView:_myWebView];
[_inspector detach:_myWebView];
[_inspector showConsole:_myWebView];
}
....