19

我在 WKWebView 中运行 web 应用程序时遇到了一些问题(特别是:某些按钮没有响应)。我使用本教程作为指南,并成功地让 webview 显示我的 webapp。所以现在我想调试javascript代码。

我知道 webapp 可以工作,因为我已经在 android webview 以及无数浏览器(包括我正在使用的 iPad 模拟器上的 safari)中尝试过它。经过一些快速的谷歌搜索,我发现了如何使用 Safari 在 UIWebView 中调试 javascript。可悲的是,这似乎不适用于新的 WKWebView。

当我导航到时,Develop->iPad Simulator我被告知“没有可检查的应用程序”。我已经用一个带有 UIWebView 的简单应用程序尝试了同样的事情,并且通过 safari 进行调试可以在那里完美地工作。

有没有办法在 WKWebView 中调试 javascript 代码?

要重现我的问题(使用 swift),请在 xCode 6 中启动一个新的单屏项目,复制文件中下面提供的代码(由kinderas 提供)并将ViewController.swift出口拖到文件中文档大纲的View下方。如有混淆,请参阅我上面链接的教程。View ControllerMain.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()
    }

}
4

3 回答 3

28

更新:2017/09/11

最新版本的 Safari 可以做到这一点。只需在 Safari 中启用开发菜单 - developer.apple.com

老的:

您需要安装Safari 的夜间版本并使用它。我正在开发的应用程序遇到同样的问题。一旦我安装了 nightly build,我现在就使用它,我的所有 WKWebViews 都会显示在开发菜单中。

希望那是您缺少的部分!

于 2014-09-17T12:59:03.867 回答
5

在您的 web 视图中打开网站或 html 页面,然后打开 safari。单击开发,然后转到模拟器,您将在那里找到您的网站标题。一旦你打开它,你会看到 javascript 调试器、控制台和你能想到的一切。

于 2018-02-09T17:32:22.013 回答
2

你可以试试http://jsconsole.com/

执行 :listen 它会为您提供一个脚本标签以粘贴到您的网页中。

您在该页面中拥有的每个 console.log 都会将它们的输出提供给该页面。

如果您关闭 jsconsole 页面,下次您应该在 html 代码中更改脚本 src,但您也可以收听该脚本 src:

:listen XXXXX-XXXXX-XXXX-XXXXX

我希望它有所帮助。

于 2014-09-17T07:50:55.863 回答