Tag: uiwebview

为什么在创buildUIWebView时,清除NSUserDefaults会导致EXC_CRASH?

在我开始之前,我应该告诉你, 这只发生在iOS 5.1。 在最近的更新之前,这从来没有发生过,并且在任何其他版本上都不会发生。 这就是说,这是怎么回事。 当用户注销我的应用程序时,发生的一件事是所有的NSUserDefaults被删除。 我可以使用本SO问题中提出的方法完全删除所有NSUserDefaults ,而不是手动删除每个可能添加到用户默认值的NSUserDefaults 。 NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain]; 什么似乎发生虽然,是每次我尝试创build一个UIWebView删除NSUserDefaults ,我得到一个EXC_CRASH (SIGABRT) 。 当我调用[[UIWebView alloc] initWithFrame:frame]时发生崩溃。 奇怪的吧? 完全退出并重新打开应用程序允许再次创buildUIWebView 。 所以,我设法弄清楚,删除默认值将导致UIWebView问题,但可以肯定的是,我为-[NSUserDefaults setObject:forKey:]添加了一个符号断点。 创build一个UIWebView的确会触发断点。 戳穿崩溃日志给我的例外原因: -[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: WebKitLocalStorageDatabasePathPreferenceKey) 这是堆栈跟踪的开始: 0 CoreFoundation 0x3340688f __exceptionPreprocess + 163 1 libobjc.A.dylib 0x37bd4259 objc_exception_throw + 33 2 […]

在本地caching不工作的情况下,在UIWebView中dynamic加载JavaScript文件

我正在尝试编写一个应用程序,它在UIWebView中使用了大量的Java脚本。 有些这个Java脚本是dynamic加载(与jQuery的),当它需要。 index.html和jquery文件按预期加载,但不是code.js文件。 code.js文件是像这样的请求(从index.html中剪除了java脚本代码): function require(moduleName,filePath) { var uri = filePath; jQuery.ajax({ type: "GET", url: uri, async: false, dataType: "script", success: function(content) { console.log("Receive content of "+moduleName); }, error: function(XMLHttpRequest, textStatus, errorThrown) { console.log("Error content of "+moduleName); console.log("Status: " + textStatus); console.log("Thrown error: " + errorThrown); console.log("h" + XMLHttpRequest.getAllResponseHeaders()); console.log(XMLHttpRequest.responseText); } }); } function start() […]

如何播放本地video文件?

我用我的屏幕(桌面)捕获软件创build了.movvideo文件,我希望该video可以在UIWebview中的应用程序中播放。 有没有办法播放该video或任何其他方式,以便我可以为我的本地video创build一个URL? 现在,我使用默认的video链接在UIWebview中播放video。 这里是代码: – (void)applicationDidBecomeActive:(UIApplication *)application { self.viewVideoDisplay.frame = CGRectMake(0, 0, 1024, 1024); [self.window addSubview:self.viewVideoDisplay]; [self.window bringSubviewToFront:self.viewVideoDisplay]; NSString *urlAddress = @"https://response.questback.com/pricewaterhousecoopersas/zit1rutygm/"; //Create a URL object. NSURL *url = [NSURL URLWithString:urlAddress]; //URL Requst Object NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; //Load the request in the UIWebView. [self.webViewVideo loadRequest:requestObj]; IsLoadingSelf = YES; } 但我没有我想播放的videourl 请帮助!

如何获取UIWebView中所选文本的坐标(CGRect)?

我有简单的UIWebView与加载的HTML。 我想显示指向选定文本的PopoverView。 我可以得到UIMenuController的menuFrame并使用它的矩形,但是结果并不像我所需要的那样精确。 我可以计算屏幕大小,并得到menuFrame矩形,然后我可以假设哪里可以findselect,但我想知道在哪里select的文本。 一般可能吗?

我如何在Swift中设置UIWebView的“User-Agent”标题

我正在使用Swift的iOS应用程序的Xcode 6。 我有一个embedded式UIWebView的简单的ViewController。 你可以find下面的代码。 现在我想更改User-Agent HTTP标头。 我试图使用NSURLRequest的setValue方法,但它不起作用(请参阅未注释的行)。 有谁知道这是怎么做到的吗? import UIKit class WebViewController: UIViewController { @IBOutlet weak var webView: UIWebView! override func viewDidAppear(animated: Bool) { var url = NSURL(string: "https://www.samplepage.com") var request = NSMutableURLRequest(URL: url) // request.setValue("Custom-Agent", forHTTPHeaderField: "User-Agent") webView.loadRequest(request) } }

iOS 9 … WebView是免除应用程序传输安全例外(ATS)规则,阻止不安全的HTTP主机?

在iOS 9中,除非将特定主机列入白名单,否则Apple将阻止应用程序的不安全HTTP连接。 http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ 由于显而易见的原因,WebView是否免除这些规则,还是我们仍然期望将浏览器打开的主机列入白名单…包括给定页面的所有链接? 我不确定这是我们的责任还是免责。

在UIWebView中设置文本字段的文本

我有一个UIWebView,我想将其中的一个文本字段设置为某些文本。 这甚至可能吗? 如果是这样,我该怎么做? 谢谢

UIWebView将Objective C公开到JavaScript

在使用UIWebView如何在使用iPhone SDK的时候公开JavaScript中的Objective-C方法? 任何帮助,将不胜感激!

UIWebView不能完全加载,高度各不相同

我有一个视图控制器包含一些标签和一个UIWebView加载一些HTML。 所有这些标签和UIWebView都是UIScrollView的子视图。 我禁用了UIWebView的滚动,以便标签和UIWebView在UIScrollView中一起滚动。 然后我find了UiWebView中的内容的大小,根据内容的大小改变了UIWebView的大小,然后将滚动视图的大小设置为web视图的大小。 这是我通过在webViewDidFinishLoad中添加以下代码的方式: CGRect frame = myWebView.frame; frame.size.height = 1; myWebView.frame = frame; CGSize fittingSize = [myWebView sizeThatFits:CGSizeZero]; frame.size = fittingSize; myWebView.frame = frame; NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height); mainScrollView.contentSize = myWebView.bounds.size; 因为我使用NSLog来查看webview内容的大小,我注意到它给同一内容不同的高度。 例如,如果我第一次打开视图控制器,它显示的高度等于915.0,当我回到导航,回到这个视图控制器,然后日志将显示大小为1012.0。 我相信这可能是由于在html内容中加载的图像。 任何人都可以告诉我怎样才能修复它第一次显示正确的高度? 谢谢! 更新:如果我使用不同的策略使用JavaScript,我已经尝试使用下面的代码: CGRect oldBounds = [[self myWebView] bounds]; CGFloat height = [[myWebView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue]; NSLog(@"NEW HEIGHT %f", […]

有没有人find一种方法来加载HTTPS页面与无效的服务器证书使用UIWebView?

如果用户尝试在Mobile Safari中加载https网页并且服务器的证书validation检查失败(其过期,撤销,自签名等),则向用户呈现警告消息,并询问他们是否想要继续或不。 同样,NSURLConnection提供了执行者首先决定如何检查证书然后决定如何进行的能力,因此在这种情况下也可能向用户显示警告,并为他们提供继续加载的机会或不是。 但是,似乎在UIWebView中加载https证书失败证书检查行为只是无法加载页面 – didFailLoadWithError:被调用与kCFURLErrorServerCertificateUntrusted但是没有得到显示给用户。 这是不一致的 – 当然,UIWebView的行为应该像Safari一样,在iPhone本身内部保持一致? 它也是一个愚蠢的NSURLConnection允许这个NSURLRequest完全的灵活性:setAllowsAnyHTTPSCertificate是私人的。 是否有实现与Safari一致的行为,这种默认行为是否可以通过类似NSURLConnection允许的方式进行定制? 干杯 PS请不要进入光顾边讨论为什么有人想这样做,非常感谢。