Tag: uiwebview

UIWebview全屏幕大小

我试图在UIWebview中使用设备的整个屏幕显示一个PDF,除了状态栏和顶部栏。 到目前为止,我创build了IBOutlet UIWebview *webview; 在我的.h文件中。 我在故事板中连接了webview,并在.m文件中写下了以下代码: – (void)viewDidLoad { [super viewDidLoad]; webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; webview.scalesPageToFit = YES; webview.autoresizesSubviews = YES; webview.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); [webview setBackgroundColor:[UIColor clearColor]]; NSString *path = [[NSBundle mainBundle] pathForResource:@"Chart" ofType:@"pdf"]; NSURL *targetURL = [NSURL fileURLWithPath:path]; NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; [webview loadRequest:request]; [self.view addSubview:webview]; } 在我的3.5英寸的PDF显示正确,但在我的4英寸的显示屏,底部被切断。 当我旋转到横向视图时,这更加明显。 […]

评估iOS UIWebView中的JavaScript时出现“SyntaxError:Unexpected EOF”

在尝试将一些JSON传递给UIWebView时,我不断收到JavaScript错误: SyntaxError:意外的EOF 在window.onerror没有行号或文件名可用,但我已经检查了所有引用的文件,并没有问题。 我正在使用MonoTouch EvaluateJavaScript方法,它相当于ObjC stringByEvaluatingJavaScriptFromString: :: webView.EvaluateJavascript( "Viewer.init($('#page'), " + json.ToString() + ");" ); 它在“简单的”JSONinput上工作得很好,但是在较大的对象上会中断。 有什么可能出错?

在UIWebView中的横向模式的Youtubevideo

我的应用程序不是为了风景。 但是,当我在UIWebView中打开我的YouTube频道并且用户启动video时 ,它将显示在肖像中。 如果用户旋转他的iPhone,我想使其以横向模式出现。 如何在这种情况下启用横向模式? 我知道有这样的“肮脏的黑客”,但我更喜欢更清洁的东西。 另外我不希望UIWebView切换到风景,但只是video可以。

iOS:WebView加载url

我试图在UIWebView打开以下url,但它无法加载,而将其更改为: http://www.google.com 工作正常。 我想加载的url是: [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@%@%@%@",@"http://m.forrent.com/search.php?address=",[[bookListing objectForKey:@"Data"] objectForKey:@"zip"],@"&beds=&baths=&price_to=0#{\"lat\":\"0\",\"lon\":\"0\",\"distance\":\"25\",\"seed\":\"1622727896\",\"is_sort_default\":\"1\",\"sort_by\":\"\",\"page\":\"1\",\"startIndex\":\"0\",\"address\":\"",[[bookListing objectForKey:@"Data"] objectForKey:@"zip"],@"\",\"beds\":\"\",\"baths\":\"\",\"price_to\":\"0\"}"]]]]; 更新: 我有意逃避双引号,否则会给我一个错误。 我通过在浏览器中打开(在笔记本电脑上),检查了url,它工作得很好: 浏览器中的url: http://m.forrent.com/search.php?address=92115&beds=&baths=&price_to=0#{%22lat%22:%220%22,%22lon%22:%220%22,%22distance%22:%2225%22,%22seed%22:%221622727896%22,%22is_sort_default%22:%221%22,%22sort_by%22:%22%22,%22page%22:%221%22,%22startIndex%22:%220%22,%22address%22:%2292115%22,%22beds%22:%22%22,%22baths%22:%22%22,%22price_to%22:%220%22}

我在哪里可以了解更多关于WebCoreSharedBufferData?

我有一个在iOS 6上完美运行的应用程序,但在iOS 7上,如果用户采取了非常具体的操作(进入过于复杂,但使用了UIWebView并且一致),则应用程序会崩溃错误: *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[WebCoreSharedBufferData getBytes:range:]: range {0, 8} exceeds data length 0' 现在我很乐意自己做一些研究和实验,但是我找不到WebCoreSharedBufferData 。 谷歌search揭示了几个人(像这里 , 这里 , 这里和那里 )谁有类似的问题,但他们的问题要么没有得到回答,要么以他们的方式使用他们的应用程序(如放大地图或使用第三方代码)我没有做。 Xcode文档从来没有听说过WebCoreSharedBufferData ,我的项目search没有提及它。 谷歌search也让我失望了,主要只是问题和GitHub项目,我没有使用第三方代码。 我假设这是苹果的UIWebViewfunction深入的东西,但没有能够了解更多关于它,我很难进行。 所以我的问题是:有谁知道我在哪里可以findWebCoreSharedBufferData信息/教程/描述等? 我觉得如果我能更好地理解它,我就能find解决scheme,在黑暗中很难进行debugging。 或者,有没有人直接了解WebCoreSharedBufferData中的WebCoreSharedBufferData哪些变化,可能会造成这样的错误? 编辑:在下面的评论中由kcbanner提供的线索(他曾经历过类似的问题):我们的两个问题都涉及使用canvas的页面和使用这些canvas的onclick事件。 也许iOS 7中的canvas点击处理有所改变?

如何在iPhone的webviewstring中打开url

我想只是从我的string打开一个URL我的string已经有我只想在UIWebView显示的URL myString=http://maps.google.com/maps?zoom=8&sensor=false&lci=transit&layer=traffic&saddr=1.31224,103.865&daddr=1.310664,103.857132 NSString *urlString = [myString absoluteString]; NSString *urlAddress =myString;// NSURL *url = [NSURL URLWithString:urlString ]; NSLog(@" url is %@",url); its null //URL Requst Object NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; NSLog(@" url req is %@",url); //Load the request in the UIWebView. [webe loadRequest:requestObj]; 我得到这个错误 se&lci=transit&layer=traffic&saddr=1.31224,103.865&daddr=1.310664,103.857132 2010-08-02 13:20:08.253 Wat2Eat[5332:207] *** -[NSCFString absoluteString]: unrecognized selector sent to […]

UIWebView,启用触摸保存图像,就像在移动Safari

我想启用保存图像和复制当用户在我的应用程序中的UIWebView中保存图像。 是否有一个属性,将使这个或将我需要写一些特殊的方法来完成这个? 谢谢阅读!

iOS8上的UIWebView中的位置服务无法正常工作

昨天,我们试着开发者预览iOS 8 beta 5与Xcode 6 Beta 5为我们的应用程序。 我们在混合应用程序的webview组件中使用位置服务。 我认识到,通过UIWebView的地理定位不再工作。 我用从w3schools.com的地理位置从头加载示例到UIWebView的示例validation了此行为。 使用iOS 7(基本SDK 7.1,使用XCode 5构build)时,系统将提示接受位置服务的通知,然后在iPhone设置的隐私 – 位置服务下显示该应用程序。 使用iOS 8(基础SDK 8,使用XCode 6构build)时,不会出现提示,并且webview位置服务不起作用,并且不会进行设置中的input。 我知道,在iOS 8中,用户的隐私设置发生了一些变化,特别是在后台处理位置服务,但是我没有想到它会打破我们的webview-location逻辑,我们使用navigator.geolocation.getCurrentPosition (showPosition)javascript函数。 无论如何,我仍然不清楚,如果这是一个错误在iOS 8testing版或一些API的变化的结果,如果,什么是正确的方式来采用。 提前致谢

UIWebView不会加载URL

在UIWebView加载URL时 ,我有一个很小的问题。 我有一个UIButton ,点击它,我添加了包含UIWebView , UIButton & Title bar的UIView 。 使用的代码如下 – [self.view addSubview:vwOnline]; vwOnline.bounds = self.view.bounds; //Load webview NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@", objWine.strOnlineURL]]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [wbvwOnline loadRequest:request]; – (void)webViewDidStartLoad:(UIWebView *)webView { //Show activity indicator [indicator startAnimating]; } – (void)webViewDidFinishLoad:(UIWebView *)webView { //Remove Activity indicator [indicator stopAnimating]; [indicator removeFromSuperview]; } […]

UIWebView的进度条(和networking活动状态)

经过长时间的rest,我又开始做ios开发了。 考虑到这一点,我下载了最新版本的XCode(5.02),并设置了以ios7作为目标的应用程序编码。 一切都很好,直到我添加一个“webView页面”到我的应用程序。 我天真地期待UIWebView像Safari中的页面一样工作,但事实并非如此。 最明显的缺点是在加载页面时,用户完全没有反馈。 即networking活动指示器完全不显示,页面加载时不显示进度条。 所以我想你只需要手动添加这些。 那不应该太难,应该吗? 几天后,我得到了很好的工作,但我不满意的结果。 我花了很多的debugging和试验来获得我现在的位置。 我想我的问题是“有什么可以改进我的方法吗?” 也可能是“我应该向苹果公司报告装载和请求财产问题,并要求他们解决这些问题”? 最初,我在网上寻找解决这个问题的方法,关于它的stackoverflow有几个问题,但似乎没有人真正破解它。 一些build议的方法: 使用一个私人的UIWebView API(如果你想把你的应用程序发布到商店就不好) 使用NSURLConnection下载页面(仅提供初始页面下载的进度) 使用第三方库下载和处理页面(大锤破解螺母?) 使用一个UIWebViewDelegate并保持加载开始和结束的轨迹 使用UIWebViewDelegate手动显示和隐藏networking活动指示器 最后我决定使用4.和5.但是它很棘手,因为: 开始和结束通话可以按任何顺序进行 一些请求开始,但从未完成 一些请求完成时出现错误 第一个问题可以通过计算启动和结束来解决,通过确保计算的进度百分比仅仅增加,并且在最后一个请求完成时只closuresnetworking指示器。 第二个问题更难解决。 UIWebView有两个属性,原则上可以用来做(加载和请求),但他们似乎以神秘的方式工作。 我在这里find的一些答案和评论build议,加载属性从来没有更新,但要求是。 这对我来说最初是有道理的,因为页面从来没有真正停止加载(他们可能有dynamic内容),所以加载属性只会告诉你,如果Web视图正在积极加载内容(即如果loadRequest已被调用,stopLoading hasn “T)。 但是,至less在ios7上,它实际上是以相反的方式工作的。 请求属性永远不会更新,所以你不能使用请求属性来确定视图是否已经完成加载一切(即通过检查已完成的请求是否是初始请求)。 加载属性会更新,当页面完全加载时,它会被设置为NO。 这有很大的帮助,但我注意到,dynamic内容(例如页面广告)导致加载重置为YES,所以处理仍然有点棘手。 第三个问题不会是一个问题,除非我已经观察到,在webView:didFailLoadWithError中加载属性始终设置为NO。 这似乎是一个临时的状态,但是,如果你想你可以忽略错误,并等待加载被设置为NO在webViewDidFinishLoad。 由于请求属性没有更新,所以不可能知道它是最初的失败请求还是其中一个子请求(你可能会也可能不关心)。 所以我决定采用一种解决scheme,让程序员select他们想要的行为。 事情会更容易,如果: 请求属性已更新(或当前请求已传入,就像在webView中:shouldStartLoadWithRequest:navigationType) 在webView:didFailLoadWithError中加载属性设置正确 这里是我的代码在视图控制器的webView: – (void)resetProgress { framesToLoad = 0; framesLoaded = 0; currentProgress = 0.0f; […]