Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试WKWebView中的javascript代码_Javascript_Ios_Debugging_Ios8_Wkwebview - Fatal编程技术网

如何调试WKWebView中的javascript代码

如何调试WKWebView中的javascript代码,javascript,ios,debugging,ios8,wkwebview,Javascript,Ios,Debugging,Ios8,Wkwebview,我在WKWebView中运行webapp时遇到一些问题(特别是:某些按钮没有响应)。我用它作为指导,并成功地让webview显示了我的webapp。现在我想调试javascript代码。 我知道webapp很管用,因为我在android webview和无数浏览器(包括我正在使用的iPad模拟器上的safari)中都试过它。在快速的谷歌搜索之后,我发现了。遗憾的是,这似乎不适用于新的WKWebView 当我导航到develope->iPad模拟器时,我被告知“没有可检查的应用程序”。我用一个带有

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

我知道webapp很管用,因为我在android webview和无数浏览器(包括我正在使用的iPad模拟器上的safari)中都试过它。在快速的谷歌搜索之后,我发现了。遗憾的是,这似乎不适用于新的WKWebView

当我导航到
develope->iPad模拟器
时,我被告知“没有可检查的应用程序”。我用一个带有UIWebView的简单应用程序尝试了同样的方法,并且通过safari进行了调试,效果非常好

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

要重现我的问题(使用swift),请在xCode 6中启动一个新的单屏幕项目,复制
ViewController.swift
文件中下面提供的代码(由提供),并将插座拖动到
Main.storyboard
文件中文档大纲的
View Controller
下的
。请参考我上面链接的教程,以防混淆

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()
    }

}
你可以试试

执行:听着,它会给你一个脚本标签粘贴到你的网页上

该页面中的每个console.log都会将其输出提供给该页面

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

:listen XXXXX-XXXXX-XXXX-XXXXX
我希望有帮助

更新:2017/09/11

Safari的最新版本可以做到这一点。只需启用

旧的:

您需要安装并使用。我正在开发的应用程序也有同样的问题。一旦我安装了夜间构建,我现在就使用它,我的所有WKWebView都会显示在“开发”菜单中


希望那是你错过的部分

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

这可能是其他人的正确解决方案,但我需要一种完全不接触javascript代码的调试方法。jsconsole.com现在似乎已经崩溃了::listen今天没有给出任何输出。是的,[现在已断开。它总是给出引用错误并表示未定义命令。在最新的夜间构建中,我没有看到WkWebView。我必须启用某些功能吗?您好@a.stringham,我们这里提到的safari设置是关于开发平台(OS x)的,对吗?但我正在调试并在iPad模拟器中运行我的WkWebView嵌入式浏览器应用程序(通过Xcode)。这些设置是否有助于调试我在嵌入式浏览器中运行的代码?您不再需要夜间Safari版本,只需使用常规的最新Safari浏览器进行调试。有人能详细介绍解决方案吗?我有Safari 11.01和开发人员控制台,尽管其中没有任何说明abo的内容ut
wkwebview
我甚至没有ios11用户代理。第一个链接已断开。我的链接已断开。请在答案中添加文本以防止出现此问题。要在Safari中获得“开发”菜单:打开首选项,请在“高级”选项卡下选中“在菜单栏中显示开发菜单”。