当前位置:  开发笔记 > 编程语言 > 正文

在UIWebView中调试Javascript有哪些方法?

如何解决《在UIWebView中调试Javascript有哪些方法?》经验,为你挑选了4个好方法。

我试图找出为什么使用Javascript的东西在UIWebView中不起作用.据我所知,没有办法在XCode中为js文件设置断点.没问题,我将回到2004年并使用警报状态 - 哦等等他们似乎也不在UIWebView内部工作!

我唯一能想到的是将我的HTML和JS文件导出到我的桌面,然后在Safari中进行调试.这有效!但是,当然,我在UIWebView中遇到的错误在Safari中不会发生.

是否还有其他方法可以在UIWebView内部进行调试,或者使用类似于使用老派警报方法的任何技巧?



1> refaelos..:

如果你使用iOS> = 6并且你有山狮(10.8)或Safari> = 6,你可以:

    在模拟器中打开应用程序(或在XCode> = 4.5.x中打开您的设备).

    打开Safari(转到Preferences -> Advanced并确保"在菜单栏中显示开发菜单"已启用.

    从菜单栏(Safari)中选择Develop -> iPhone Simulator -> [your webview page].

而已 !


在模拟器上不确定,但要在设备上运行,您必须在设置中启用该选项.`Settings`>`Safari`>`Advanced`>`Web Inspector` < - 启用此功能
@RajV您可以在物理设备上调试UIWebViews,但只能在您的设备上调试直接使用XCode的UIWebViews,而不是Appstore中的那些.
这仅适用于在模拟器中运行应用程序的情况.如果您必须使用iOS设备进行调试,请参阅此方法http://mobiarch.wordpress.com/2013/04/06/javascript-console-log-from-a-uiwebview/

2> Dan Bennett..:

这个查询高于谷歌,因此值得链接到iOS5中隐藏的remoteInspector - 到目前为止调试UIWebViews的最佳方法 - 只是在发送给Apple之前有条件编译.


仍然可以工作,像这样使用它:`[NSClassFromString(@"WebView")performSelector:@ selector(_enableRemoteInspector)];`记住在构建发布时删除调用!
我之前曾经使用过这个,但显然自从Mountain Lion出现以后它就不起作用了(可能的解决方法):http://www.iwebinspector.com/help.html#ml

3> rob..:

alert()肯定对我有用.

但是,您还可以执行许多其他操作,例如在层中弹出自己的DHTML警报.这可能很好,因为您可以对单个div执行多个警报,而无需停止您的应用程序.你也应该能够堆栈跟踪写它(堆栈跟踪是在异常对象,你可以随时抛出自己的例外).

或者,如果在模拟器上运行,您的自定义"alert()"可以调用目标C,并在iPhone模拟器的控制台窗口中显示该字符串:

document.location.href = "http://debugger/" + 
   encodeURIComponent(outputString);   

在目标C方面:

//--------------------------------------------------------------------
- (BOOL)webView:(UIWebView*)webView 
       shouldStartLoadWithRequest: (NSURLRequest*)req 
       navigationType:(UIWebViewNavigationType)navigationType {
    if ([[[req URL] host] isEqualToString:@"debugger"]){
        // do stuff with [[req URL] path] 
       }
}

也就是说,我有一个在UiWebView/javascript上很重的应用程序,我倾向于在Chrome中做大多数javascript开发(模拟iPhone环境中的必要)



4> Adrian Harri..:

我还没试过,但看看这个Weinre

看起来很有希望.


仅链接答案更适合作为评论.
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有