Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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
如何将javascript console.log to println()获取到Swift中的Xcode调试器?_Javascript_Ios_Swift - Fatal编程技术网

如何将javascript console.log to println()获取到Swift中的Xcode调试器?

如何将javascript console.log to println()获取到Swift中的Xcode调试器?,javascript,ios,swift,Javascript,Ios,Swift,有没有办法使用swift在Xcode中向调试器显示javascript错误和/或控制台日志?如果是,怎么做?如果您已经在javascript和swift代码之间建立了正确的连接(例如,使用此处的方法:),您可以用JS编写一个方法,将消息发送到swift中指定的scriptMessageHandler,然后将LN打印到xcode输出 类似这样的东西(草草写的,可能是打字错误) 发送到swift的JS方法: function sendConsole(message) { try {

有没有办法使用swift在Xcode中向调试器显示javascript错误和/或控制台日志?如果是,怎么做?

如果您已经在javascript和swift代码之间建立了正确的连接(例如,使用此处的方法:),您可以用JS编写一个方法,将消息发送到swift中指定的scriptMessageHandler,然后将LN打印到xcode输出

类似这样的东西(草草写的,可能是打字错误)

发送到swift的JS方法:

function sendConsole(message) {
    try {
        webkit.messageHandlers.myMessageHandler.postMessage("Console:" + message);
    } catch(err) {
        console.log('Something is wrong');
    }
}
处理swift代码的摘录:

func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) {

    if(message.name == "myMessageHandler") {
        println(message.body)
    } 
}

如果您不确定如何执行此操作,请点击链接,他会很好地解释此操作。

您可以使用桌面Safari开发工具

  • 运行Xcode模拟器
  • 打开桌面Safari开发者工具,Safari菜单栏->开发->模拟器iPhone XXX->您的Xcode模拟器应用程序名称。然后出现了一个Web检查器
  • 运行Xcode模拟器时,所有console.log消息都将打印在Web检查器上

  • 要在桌面Safari菜单栏上显示开发人员工具,请转到Safari->Preferences->Advances->show Desktop menu in menu bar。

    如果我添加自己的打印功能,这听起来不错,但如何将js window.console.log重定向到webkit.messageHandlers.myMessageHandler