我正在开发一款UIWebView
的iOS应用。 UIWebView
中显示的网页在iOS上的Safari应用程序中显示正常,但当显示在UIWebView
内时,点击“登录”按钮时没有任何反应:http://www.bnpsolutions.com/Common/Login_Mobile.aspx
有人知道为什么吗?
您可以在此处下载我的小型iOS示例项目: http://uploads.demaweb.dk/WebView.zip
EDIT1:
我已将WebView更改为显示a simple page which just including jQuery:http://uploads.demaweb.dk/WebView2.zip。
错误消息是:
WebView[13623:11703] JavaScript exception: (/ajax/libs/jquery/1.7.2/jquery.js):5187 - SYNTAX_ERR - SYNTAX_ERR: DOM Exception 12
Line:
(function(){
为什么UIWebView无法加载jQuery?
答案 0 :(得分:0)
我建议定义委托方法:
– webView:shouldStartLoadWithRequest:navigationType:
– webViewDidStartLoad:
– webViewDidFinishLoad:
– webView:didFailLoadWithError: /* especially this one!! */
并在其中放置一些NSLog跟踪,以便您可以看到发生了什么。 Safari可能比UIWebView更能抵御错误(或以更友好的方式处理错误),因此行为上存在差异。但你应该直接在你的应用程序中查看它......
答案 1 :(得分:0)
好吧,使用这个code来调试你的UIWebView我在你的javascript中找到了2个与资源/WebResource.axd
相关的例外。检查一下,我希望它有用。
答案 2 :(得分:0)
关于生成的错误消息 - UIWebView确实能够加载jQuery - 当异常发生时,您获得有关异常的消息(基于关于如何调试UIWebView的注释中的链接)被提出 - 是否被捕获。
jQuery中的特定函数在函数开头附近有一个try / catch,它有意地尝试引发异常(并捕获它)。
试试这段代码,看看我的意思:
NSString *htmlString = @"<html><body>Hello World I am a <b>browser</b><script>(function(){try {var a=undefined; a();} catch (err) {} }());</script></body></html>";
[uiWebView loadHTMLString:htmlString baseURL:nil];
是否存在try / catch,将报告异常。