Tag: uiwebview

如何处理UIWebView中的应用程序URL?

我最近发现我的UIWebView在ITMS链接上窒息。 具体来说,从我的应用程序中的UIWebView,如果我导航到这样的网站,并单击“在App Store上可用”链接,UIWebView将错误与“错误域= WebKitErrorDomain代码= 101 URL不能显示“。 谷歌search了一下后,我意识到我需要赶上应用程序链接的请求,并有iOS处理它们。 我开始通过-webView:shouldStartLoadWithRequest:navigationType:来查看该scheme是否以“itms”开始,但是意识到系统可能会处理其他types的应用程序链接。 所以我想出了这个,而是: – (void)webView:(UIWebView *)wv didFailLoadWithError:(NSError *)error { // Give iOS a chance to open it. NSURL *url = [NSURL URLWithString:[error.userInfo objectForKey:@"NSErrorFailingURLStringKey"]]; if ([error.domain isEqual:@"WebKitErrorDomain"] && error.code == 101 && [[UIApplication sharedApplication]canOpenURL:url]) { [[UIApplication sharedApplication]openURL:url]; return; } // Normal error handling… } 我有两个问题: 这是理智的吗? 我特别检查错误域和错误代码,并从userInfo获取URLstring。 这些东西可能会保留吗? 这适用于上面链接的app store链接,但是当我切换回到我的应用程序时,似乎有一个后来失败的请求失败,“帧负载中断”。 […]

在iPhone SDK中无法更改UIWebView的背景

有没有办法改变UIWebView背景颜色? 在IB中设置的颜色没有影响UIWebView行为:在加载实际内容之前,它显示为白色(在加载和呈现内容之间引起白色闪光)。 以编程方式设置背景颜色也不会做任何事情。 这是代码: @interface Web_ViewViewController : UIViewController { UIWebView *web; } @property (nonatomic, retain) IBOutlet UIWebView *web; @end …. -(void)viewDidLoad { super viewDidLoad; web.backgroundColor = [UIColor blueColor]; NSURL *clUrl = [NSURL URLWithString:@"http://www.apple.com"]; NSURLRequest *req = [NSURLRequest requestWithURL:clUrl]; [web loadRequest:req]; }

使用iPhone UIWebView的Asp.Net Forms身份validation

我正在写一个使用表单身份validation的Asp.net MVC 2应用程序,目前我在通过Web进行身份validation/login时遇到了iPhone应用程序的问题。 我们开发了一个使用UIWebView控件的简单iPhone应用程序。 在这个阶段,所有的应用程序都导航到我们的Asp.Net网站。 很简单,对吧? 问题是,用户无法越过login页面。 repro步骤是: 打开iPhone应用程序。 该应用程序导航到主页。 用户没有被authentication,所以他们被redirect到login屏幕/页面 用户input正确的用户名和密码。 点击提交。 在服务器端,用户通过身份validation,生成一个cookie,并使用FormsAuthentication.GetAuthCookie发送给客户端。 服务器发送redirect将用户发送到正确的主页。 但用户被redirect回login屏幕! 我已经做了一些广泛的debugging,我知道的是: Cookie正在发送给客户端,客户端正在存储Cookie。 在iPhonedebugging器中validation了这一点,并使用Javsascript在页面上显示cookie数据。 该cookie正在被发送回服务器。 在Visual Studiodebugging器中validation了这一点。 这是正确的cookie(这是设置相同的)。 即使auth cookie包含在Request对象中,User.Identity.IsAuthenticated属性也会由于某种原因返回false。 我已经validationiPhone应用程序设置为接受cookie,并且它们在客户端上。 这是有趣的事情:如果你打开iPhone上的Safari浏览器,并直接进入我们的网站,它工作正常。 它在iPad上也有相同的行为,因为它不会超越login屏幕。 这个仿真器和设备上的repros。 这个网站已经testingIE 7-8,Safari(Windows),黑莓,IEMobile 6.5,电话7,它的工作发现。 唯一不适用的情况是iPhone应用程序中的UIWebView。

iPhone的UIWebview:如何强制数字键盘? 可能吗?

我正在尝试使用PhoneGap来开发一些iPhone应用程序。 PhoneGap基本上包装了一个UIWebView – 它运作良好。 问题是我的应用程序有几个input字段,只有数字input。 我真的需要强制数字键盘,而不是接受默认的标准键盘,然后强制用户切换到每个字段的数字。 有谁知道这是可能的吗? 怎么样? 澄清:我知道苹果目前不提供任何API来允许这个。 我想知道如果创build一个从UIWebViewinheritance的自定义类可能会帮助,或者也许创build一个自定义的键盘会打开一些可能性? 更新2009年11月6日 – 如下所述,苹果公司最近更新了Safari浏览器的function,以便再次得到支持。 所以接受的答案就改变了,以反映这一点。 <html> <input type='tel'/> <input type='number'/> <input type='email'/> <input /> </html> 上面现在按顺序显示如下: 替代文字http://img.skitch.com/20091107-eu5sgymf9wp6ibdu72hqawthci.jpg 替代文字http://img.skitch.com/20091107-m9y8cnuiwe7sh34dtm5u1mcrt2.jpg 替代文字http://img.skitch.com/20091107-jqccu6wsgks8t3w4x3k22f4apr.jpg 替代文字http://img.skitch.com/20091107-r3p2ejjwb861pwetp1tkq2ccjr.jpg

如何确定基于内容的UIWebView高度,在一个可变的高度UITableView?

我正在试图创build一个可变高度行的UITableView中解释这个问题的答案 我的问题是每个单元格包含一个与不同的(静态加载)内容的UIWebView我无法弄清楚如何根据内容计算适当的高度。 有没有办法做到这一点? 我尝试过这样的事情: (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { WebViewCell *cell = (WebViewCell*)[self tableView:tableView cellForRowAtIndexPath:indexPath]; [cell setNeedsLayout]; [cell layoutIfNeeded]; return cell.bounds.size.height; } 单元格本身是从一个笔尖加载的,它只是一个包含UIWebView的UITableViewCell 。 (如果单元格将自己调整为最大的html内容,虽然可变高度会更好)也是没问题的。

禁用滚动UIWebView允许?

我必须在文章下面展示一个带有UITableView的Web文章。 我发现的唯一select是在tableView标题的UIWebView中显示文章。 为了做到这一点,我必须得到的webView内容的高度,我必须禁用滚动的webView。 我发现两个解决scheme禁用滚动: for (id subview in webView.subviews) if ([[subview class] isSubclassOfClass: [UIScrollView class]]) ((UIScrollView *)subview).scrollEnabled=NO; 或在JavaScript中: <script type="text/javascript"> touchMove = function(event) { event.preventDefault(); } 我听说第一个解决scheme是苹果禁止的,但是我没有任何证据。 我的申请将被拒绝使用这种解决scheme? 如果是这样,我可以使用第二个解决scheme而不被拒绝?

在Interface Builder中的WKWebView

看来XCode 6 beta中的IB对象模板仍在创build旧式对象(用于iOS的UIWebView和用于OSX的WebView)。 希望苹果将更新他们的现代WebKit,但在那之前,什么是在Interface Builder中创buildWKWebViews的最佳方式? 我应该创build一个基本的视图(UIView或NSView),并将其types分配给WKWebView? 我在网上find的大多数例子都以编程方式将它添加到容器视图中; 是因为某种原因更好吗?

启用缩放/捏UIWebView

我有一个pdf文件的UIWebView。 它工作正常。 但是,我怎样才能启用缩放PDF文件?

在UIWebView中debuggingJavascript的一些方法是什么?

我想弄清楚为什么用Javascript的东西不工作的UIWebView里面。 据我所知,没有办法在Xcode中为js文件设置断点。 没有问题,我会回到2004年,并使用警报状态 – 哦,等等,他们似乎不工作在一个UIWebView! 我唯一能想到的是通过将我的HTML和JS文件导出到我的桌面,然后在Safari中进行debugging。 那可行! 但是当然,我在UIWebView中遇到的错误在Safari中不会发生。 有没有其他方法可以在UIWebView中进行debugging,或者可以使用类似于使用旧式警报方法的技巧?

获取UIWebView的当前url

我已经尝试使用: webview.request.URL获取我的UIWebView的当前url。 不幸的是, NSURL是空的。 这里有什么问题吗? 我正在使用Xcode 3.2.2 beta 5。 上面的代码应该在UIWebView委托didStartLoad执行。