【Swift】WKWebViewでJavaScriptのconsole.logを使えるようにする

投稿者: | 2019年1月13日

アプリ内のWKWebViewで実行するJSのデバッグが面倒だったので、xcodeのコンソールにJSのconsole.logの内容が表示されるextensionを作成しました。

プロジェクトに組み込み後、webView.enableConsoleLog()みたいな感じで呼び出すと、以降、JSのconsole.logの内容がXcodeのデバッグウインドウに表示されます。

詳細はコードを確認ください。

【Swift】WKWebViewでJavaScriptのconsole.logを使えるようにする」への2件のフィードバック

  1. dike

    Yuhさん

    一つ質問ですが、このコードってon_clickなどのイベントによるconsole.logも出力できますでしょうか??
    html、javascriptを読み込んだ際に実行されるconsole.logはXcodeのログに出力されたのですが、画面表示後にhtmlのボタン押下などによる契機で動作するconsole.logは表示されないです。。。

    もし、解決方法ご存知でしたらご教授いただけないでしょうか?

    返信
    1. Yuh 投稿作成者

      すいません、スパムコメントが多くて気づきませんでした。
      原理的には、イベントハンドラでも動作するはずなのですが、ブラウザの内部でconsole.log関数を元に戻してしまっているのかもしれません。
      根本的な解決にはなりませんが、イベントハンドラの最初に「var console = { log: function(msg){window.webkit.messageHandlers.logging.postMessage(msg) }};」を記載すれば、一応、動作するのではないかと思います。

      返信

コメントを残す

メールアドレスが公開されることはありません。