web-dev-qa-db-ja.com

WKWebView内のJavaScriptコードをデバッグする方法

WKWebViewでのWebアプリケーションの実行に問題があります(特に、一部のボタンが応答しない)。私は this tutorial をガイドとして使用し、webviewに私のwebappを表示させることに成功しました。だから今javascriptコードをデバッグしたい

Android webviewと無数のブラウザー(私が使用しているiPadシミュレーターのサファリを含む)の両方で試したので、webappが機能することを知っています。)判明 Safariを使用してUIWebView内のJavaScriptをデバッグする方法 残念ながら、これは新しいWKWebViewでは機能しないようです。

_Develop->iPad Simulator_に移動すると、「検査可能なアプリケーションがない」というメッセージが表示されます。私はUIWebViewを備えたシンプルなアプリでまったく同じことを試しましたが、サファリによるデバッグは完全に機能します。

WKWebView内でJavaScriptコードをデバッグする方法はありますか?

(Swiftを使用して)私の問題を再現するには、xCode 6で新しい単一画面プロジェクトを開始し、_ViewController.Swift_ファイルに以下のコード( kinderas 提供)をコピーして、アウトレットをViewにドラッグします_View Controller_ファイルのドキュメントアウトラインの_Main.storyboard_の下。混乱した場合は、上でリンクしたチュートリアルを参照してください。

_import UIKit
import WebKit

class ViewController: UIViewController {

    @IBOutlet var containerView : UIView! = nil
    var webView: WKWebView?

    override func loadView() {
        super.loadView()

        self.webView = WKWebView()
        self.view = self.webView!
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        var url = NSURL(string:"http://www.kinderas.com/")
        var req = NSURLRequest(URL:url)
        self.webView!.loadRequest(req)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}
_
13
overactor

更新:2017/09/11

Safariの最近のバージョンでこれを行うことができます。 Safariの開発メニュー-developer.Apple.com を有効にするだけです。

古い:

Safariのナイトリービルド をインストールして使用する必要があります。開発中のアプリでも同じ問題が発生していました。ナイトリービルドをインストールしたら、それを使用すると、すべてのWKWebViewが開発メニューに表示されます。

それがあなたが欠けていた部分であることを願っています!

20
a.stringham

あなたは試すことができます http://jsconsole.com/

:listenを実行すると、Webページに貼り付けるスクリプトタグが表示されます。

そのページにあるすべてのconsole.logは、このページに出力を提供します。

Jsconsoleページを閉じると、次回はHTMLコードでスクリプトsrcを変更する必要がありますが、そのスクリプトsrcを聞くこともできます。

:listen XXXXX-XXXXX-XXXX-XXXXX

お役に立てば幸いです。

2
Biribu

webビューでWebサイトまたはHTMLページを開き、Safariを開きます。 「開発」をクリックしてからシミュレーターに移動すると、そこにWebサイトのタイトルが表示されます。それを開くと、JavaScriptデバッガー、コンソール、その他の夢のようなものがすべて表示されます。

1
ɯɐɹʞ