Tag: uiwebview

如何更改UIWebView中的字符编码?

问题摘要:浏览iOS中未使用UIWebView显式指定正确字符编码的非英文网站时,页面无法正确显示。 详细解释:由于UIWebView中的loadRequest:方法将使用从Web服务器发送的charset头中指定的编码或写在HTML元标记中的字符集,并且默认为iso-8859-1(好吧,我不太确定关于这个)当字符集没有被指定时,导致非英文网站无法正常显示。 我曾尝试Google改变UIWebView使用的字符集,但唯一的方法是使用loadData:MIMEType:textEncodingName:baseURL:方法来指定编码名称。 但是,使用loadData:MIMEType:textEncodingName:baseURL: + NSURLConnection代替loadRequest:并不是一个好主意,因为UIWebView将不会调用委托方法webView:shouldStartLoadWithRequest:navigationType:对于框架,即使我们find了方法要在UIWebView加载框架时得到通知,我们不能调用loadData:MIMEType:textEncodingName:baseURL:加载框架内容,因为它会加载框架作为外部页面,如果我们这样做。 此外,我试图使用JavaScript黑客,但似乎属性是只读的,不能改变。 [webView stringByEvaluatingJavaScriptFromString:@"document.characterSet='utf-8';"]; 另一个解决方法是向HTML中插入元标记,并要求UIWebView加载修改后的代码,但上面提到的框架问题也适用于此处。 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 问:是否有更好的解决scheme,可以更改UIWebView中加载的网页中的字符编码,并正确处理帧?

在iOS 8下启用了“引导访问”的UIWebView中点击链接时显示警报

我写了一个相当基本的iOS应用程序,通过UIWebView元素使用网页内容。 应用程序需要在“引导访问”模式下运行,因为它在面向客户的零售环境中运行。 在iOS 7下,一切正常,但自从更新到iOS 8后,几乎每次浏览网页上的链接时,都会在屏幕的顶部显示“引导访问已启用,三次点击退出”button。 我已经尝试从头开始创build一个新的应用程序,只有一个UIWebView元素,并且问题仍然存在。 我已经提交了一个苹果的错误,但我急于寻求一种方法来解决这个问题,使警报不再显示给客户。

以UIWebView的快照/截图

如何拍摄UIWebView控件的快照/截图?

在XCode中本地化HTML文件

我有一个本地化的iOS应用程序,我希望包含一些本地化的HTML文件。 我无法解决如何做到这一点。 目前,我的文件夹结构如下所示: /myapp /en.lrproj /Localizable.strings /fr.lrproj /Localizable.strings /webviews /view1 /index.html /pic1.png /view2 /index.html /pic2.png 正如你所看到的,我目前已经将视图与相关的图像组织在他们自己的文件夹中。 在XCode中,当我selectLocalizable.strings文件时,我可以添加新的本地化。 当search这个问题的解决scheme,我看到其他人已经做了相同的HTML文件,但是当我selectHTML文件没有选项显示的本地化,所以我想知道如果文件夹结构是问题。 另一方面,我不知道如何将HTML结构化为语言代码文件夹,而不需要复制必须位于一侧的graphics。 很明显,我不是在理解什么 – 我需要做些什么才能使这个工作? 谢谢, 蒂姆

如何控制页面显示为UIWebView for iOS加载的PDF(转到页面)

我正在开发一个应用程序,显示embedded在WebView中的PDF这是我的代码: – (void)viewDidLoad { [super viewDidLoad]; NSURL *urlremoto = [NSURL URLWithString:@"https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/TransitionGuide.pdf"]; request = [NSURLRequest requestWithURL:urlremoto]; [self.webView loadRequest:request]; [self.webView setScalesPageToFit:YES]; } -(void)webViewDidStartLoad:(UIWebView *)webView{ [self.activityIndicator startAnimating]; } -(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{ //TODO: describir el error [self.activityIndicator stopAnimating]; } -(void)webViewDidFinishLoad:(UIWebView *)webView{ [self.activityIndicator stopAnimating]; } 现在我想触摸一个button,并将我加载的PDF更改为特定的页面,我正在寻找的东西来实现这一点,但仍然没有任何工作 在此先感谢您的支持

UIWebView显示UIActivityIndi​​cator进行加载,但在页面初始加载后忽略其他加载请求(例如JavaScript加载的广告)

这是一个问答post。 为了告诉其他许多用户,我在StackOverflow的数据库中浏览过这个问题,看到了这个问题。 这些用户都没有得到一个确切的答案(其中大部分是在几年前提出的问题,所以我不会碰到这个职位)。 许多困难的问题如下: 当你尝试加载一个页面在UIWebView和页面然后加载另一个页面可能通过一个iFrame或它加载一个广告通过javascript你最终得到的页面加载函数再次调用,如果你使用的UIActivityIndi​​cator它会再次被调用以及惹恼你的用户。 解决方法是存储以前的MainURL并检查正在尝试加载的新MainURL,如果它们匹配,则忽略加载函数。 (在我的答案下面的示例代码) **在网页已经真正加载完成后,再次调用webViewDidStartLoad方法的网页示例如下:www.speakeasy.net/speedtest/

如果滚动到顶部或底部,UIWebView将垂直滚动事件委托给父级

我有一个UIScrollView UIWebView,分页。 基本上我想在不同的浏览器之间切换滚动/扔手势。 水平它工作正常。 如果web视图滚动到“页面的边框”,则滚动/平移事件被传递给滚动视图,以便显示下一页。 在垂直轴上,这不起作用。 似乎没有传递给scrollview的事件。 这可能是弹跳的问题,我禁用了,因为我认为它会消耗事件。 但是,即使在弹跳残疾,这是行不通的。 我之前用TextViews在scrollview中testing过了,它也能工作。 可能是webviews的特殊行为。 任何想法,我如何得到这个工作? 我是否必须实现事件监听器并将事件手动传递给滚动视图? 此外,如果您对如何实施这种布局有更好的了解,请告诉我。 正如我所说,我想有一个不同的意见,可以通过一举两得/滚动手势来改变网格。 与AppStore应用类似,应用的细节可以垂直滚动,屏幕截图可以水平滚动。 干杯亨里克

UIWebView加载本地图像和JavaScript文件的远程HTML页面

我创build的应用程序,将显示远程页面的UIWebView使用本地图像和javascript / css文件更快的加载。 我想避免使用caching,因为为了这个工作,它必须首先加载所有的内容。 我正在网上寻找可能的解决scheme。 这是我有什么: NSURLRequest *urlrequest = [ [NSURLRequest alloc] initWithURL: [NSURL URLWithString:urlString] ]; NSData *returnData = [ NSURLConnection sendSynchronousRequest:urlrequest returningResponse: nil error: nil ]; NSString *HTMLData = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; NSString *resourcePath = [[NSBundle mainBundle] resourcePath]; resourcePath = [resourcePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"]; resourcePath = [resourcePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; [webView loadHTMLString:HTMLData baseURL: [NSURL […]

UIWebView stringByEvaluatingJavaScriptFromString在后台

在iOS应用程序中,我使用stringByEvaluatingJavaScriptFromString (在javascriptstring长度方面较大)在UIWebView上运行相当大的脚本。 在调用javascript导致屏幕上的其他元素打嗝一会儿之后有一个简短的暂停。 使用self performSelectorInBackground在后台调用的函数中放置JavaScript调用会中断应用程序。 有没有一个安全的方法来调用后台线程或以其他方式防止接口暂停?

在iphone SDK中从uiwebview下载文件

有什么办法从UIWebView下载文件,我在我的IBAction事件上使用这个代码 – (IBAction)saveFile:(id)sender { // Get the URL of the loaded ressource NSURL *theRessourcesURL = [[self.webDisplay request] URL]; NSString *fileExtension = [theRessourcesURL pathExtension]; if ([fileExtension isEqualToString:@"png"] || [fileExtension isEqualToString:@"jpg"] || [fileExtension isEqualToString:@"pdf"] || [fileExtension isEqualToString:@"html"]) { // Get the filename of the loaded ressource form the UIWebView's request URL NSString *filename = [theRessourcesURL lastPathComponent]; NSLog(@"Filename: […]