标签: uiwebview

清除UIWebview缓存

我使用UIWebview使用loadRequest:方法加载网页,当我离开那个场景时,我调用[self.webView stopLoading];并释放webView.

在第一次启动的活动监视器中,我已经看到实际内存增加了4MB,并且在多次启动/加载时,实际内存不会增加.它只增加一次.

我检查了webview的保留计数.这是正确的,即0.我认为UIWebView正在缓存一些数据.如何避免缓存或删除缓存数据?或者还有其他原因吗?

cocoa-touch uiwebview uikit ios

66
推荐指数
4
解决办法
11万
查看次数

通过缩放内容来抑制WKWebView,以与UIWebView相同的放大率进行渲染

问题

使用WKWebView代替UIWebView,我注意到,WKWebView与我相比,它的内容大幅缩小UIWebView.我希望WKWebView停止这样做,并按照字面意思尊重我的CSS值UIWebView.

上下文

我在我的原生iOS应用程序中使用Web视图,用于在iPad上显示信息内容的弹出窗口内容.很高兴能够将内容和设计人员提供给他们并说"只需放入一些HTML内容,引用链接的CSS文件".

所有这些在使用时都很有用UIWebView.

但是popovers通常非常紧凑.

我经历了什么

在我狭隘的popovers中,内容按比例缩小,就好像我的内容整个网页被小型化以适应.我可以看到WKWebView主要用于在iOS上构建备用浏览器或构建混合应用程序的人,其中WKWebView本质上是接管屏幕.

WKWebView中的放大系数不是可以设置的.当然,用户可以放大,但这会失败.我不是在寻找放大的视口; 我正在寻找与UIWebView一样适合和自动换行的整个内容.

使用WKWebView,在模拟器中,如果我将正文文本大小提升到50px而不是14px,我会看到我想要的大小.但是,这个代码在设备上时甚至没有帮助,因此也不能选择夸大我的CSS大小!

UIWebView有什么不对?

好吧,没什么.它还没有(在)iOS8中被弃用,也许b/c它仍然有用,正如我所经历的那样.但我注意到WKWebView很快.我已经看到一些猜测,写作是UIWebView的墙上.我想:"为什么现在不采用iOS8中更现代的API?"

所以,我现在继续使用UIWebView,但是我想切换到WKWebView,如果我能让它尊重我的CSS大小.

这是UIWebView很好地呈现的原始CSS,但是popover中的哪个WKWebView会以非常小的字体呈现:

body {
    font-family: "HelveticaNeue";
    font-size: 15px;
    line-height: 17px;
    color: #000000;
}

h1 {
    font-family: "HelveticaNeue-Bold";
    font-size: 18px;
    line-height: 20px;
    color: #000000;
}


h2 {
    font-family: "HelveticaNeue-Bold";
    font-size: 16px;
    line-height: 18px;
    color: #000000;
}
Run Code Online (Sandbox Code Playgroud)

css uiwebview ios8 wkwebview

65
推荐指数
1
解决办法
2万
查看次数

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

我正在尝试使用PhoneGap开发一些iPhone应用程序.PhoneGap基本上包装了一个UIWebView - 它运行良好.问题是我的应用程序有几个输入字段只接受数字输入.我真的需要强制数字小键盘而不是接受默认的标准键盘,然后强制用户切换到每个字段上的数字.有谁知道这是否可能?怎么样?

澄清:我知道Apple目前不提供任何API来允许此操作.我想知道创建一个从UIWebView继承的自定义类是否有帮助,或者创建自定义键盘是否会开辟一些可能性?

2009年11月6日更新 - 如下所述,Apple最近更新了safari功能,以便再次支持.所以接受的答案被改变以反映这一点.

 <html>
<input type='tel'/>
<input type='number'/>
<input type='email'/>
<input />
</html>
Run Code Online (Sandbox Code Playgroud)

iphone keyboard uiwebview cordova

61
推荐指数
3
解决办法
6万
查看次数

使用iPhone UIWebView时的Asp.Net Forms身份验证

我正在编写一个使用表单身份验证的Asp.net MVC 2应用程序,目前我的iPhone应用程序在通过Web进行身份验证/登录时遇到问题.我们开发了一个使用UIWebView控件的简单iPhone应用程序.在这个阶段,所有应用程序都会导航到我们的Asp.Net网站.简单吧?问题是,用户无法通过登录页面.重复步骤是:

  • 打开iPhone应用程序.
  • 该应用程序导航到主页.
  • 用户未经过身份验证,因此会重定向到登录屏幕/页面
  • 用户输入正确的用户名和密码.点击提交.
  • 在服务器端,用户经过身份验证,并生成cookie并使用FormsAuthentication.GetAuthCookie发送到客户端.
  • 服务器发送是重定向以将用户发送到正确的主页.

但是用户然后被重定向到BACK登录屏幕!

我已经对此进行了一些广泛的调试,我所知道的是:

cookie被发送到客户端,客户端正在存储cookie.在iPhone调试器中验证了这一点,并使用Javsascript在页面上显示cookie数据.cookie正被发送回服务器.在Visual Studio调试器中验证了这一点.它是正确的cookie(它与设置的相同).User.Identity.IsAuthenticated属性由于某种原因返回false,即使auth cookie包含在Request对象中.我已经确认iPhone应用程序已设置为接受cookie,并且它们在客户端上.

这是有趣的事情:如果您在iPhone上打开Safari浏览器并直接访问我们的网站,它可以正常工作.

它在iPad上也具有相同的行为,因为它没有通过登录屏幕.这种模拟器和设备上的重复.

这个网站已经通过IE 7-8,Safari(适用于Windows),Blackberry,IEMobile 6.5,Phone 7进行了测试,可以找到它.唯一不适用的情况是iPhone应用程序中的UIWebView.

asp.net authentication cookies asp.net-mvc uiwebview

61
推荐指数
4
解决办法
2万
查看次数

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

我最近发现我的UIWebView在ITMS链接上窒息.具体而言,在我的应用程序中的UIWebView,如果我浏览到一个网站,如这一个,然后单击"可用在App Store上的"链接,将UIWebView的错误了"错误域= WebKitErrorDomain代码= 101的网址不能显示".

经过一段谷歌搜索,我意识到我需要捕获应用程序链接的请求并让iOS处理它们.我开始时查看该方案是否以"itms"开头-webView:shouldStartLoadWithRequest:navigationType:,但意识到系统可以处理其他类型的应用程序链接.所以我想出了这个,相反:

- (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…
}
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 这样理智吗?我专门检查错误域和错误代码,并从userInfo中获取URL字符串.这些东西可能会留下来吗?
  2. 这适用于上面链接的应用商店链接,但当我切换回我的应用时,似乎有一个后续失败的请求因"帧加载中断"而失败.我怎么能摆脱那个?当我让OS处理请求时-webView:shouldStartLoadWithRequest:navigationType:,它不会发生,所以它有点烦人.

如何处理这些请求?

iphone cocoa uiwebview ios uiwebviewdelegate

61
推荐指数
2
解决办法
7万
查看次数

无法在iOS中更改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];
}
Run Code Online (Sandbox Code Playgroud)

background-color uiwebview ios

58
推荐指数
4
解决办法
4万
查看次数

UIWebView背景颜色

我正在将一个HTML字符串加载到UIWebView中,以便能够查看富文本.到现在为止还挺好.但我有一个小问题:在我的Nib文件中,我将background属性设置为绿色.但是,显示时,背景为白色.然后,在类文件中,我添加了以下内容

[myWebView setBackgroundColor:[UIColor greenColor]];
    [myWebView loadHTMLString:myString baseURL:nil];
Run Code Online (Sandbox Code Playgroud)

但是,背景仍然是白色的.我甚至试图扭转顺序,但仍然出现白色背景.

文本大于UIWebView的大小.我注意到当我向下滚过文本的末尾时,背景是绿色的.如何让文本本身的背景为绿色?

你能告诉我我做错了什么吗?非常感谢.

uiwebview ios

58
推荐指数
4
解决办法
3万
查看次数

如何迁移到WKWebView?

我试图了解如何在iOS8中使用新的WKWebView,找不到太多信息.我读了:

http://developer.telerik.com/featured/why-ios-8s-wkwebview-is-a-big-deal-for-hybrid-development/ http://nshipster.com/wkwebkit/

但这对现有应用程序有何影响?普通的UiWebView会从nitro java脚本引擎获得加速,还是需要进行更改?我们如何处理向后兼容性?

我能找到的所有代码和示例都使用swift,这是强制性的吗?

感谢您对此事的任何帮助!

uiwebview ios8 wkwebview

58
推荐指数
7
解决办法
9万
查看次数

从WKWebView获取所有cookie

虽然UIWebView通过使用来获取cookie 似乎很简单NSHTTPCookieStorage.sharedHTTPCookieStorage(),但它似乎WKWebView将cookie存储在其他地方.

我做了一些研究,然后我从NSHTTPURLResponse对象中抓取了一些饼干.但是,这并不包含以下所用的所有Cookie WKWebView:

func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) {

  if let httpResponse = navigationResponse.response as? NSHTTPURLResponse {
    if let headers = httpResponse.allHeaderFields as? [String: String], url = httpResponse.URL {
      let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(headers, forURL: url)

      for cookie in cookies {
        logDebug(cookie.description)

        logDebug("found cookie " + cookie.name + " " + cookie.value)
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是WKWebsiteDataStore,ios 9中还有一个负责管理cookie WKWebView的类,但是,该类不包含检索cookie数据的公共方法:

let storage = WKWebsiteDataStore.defaultDataStore() …
Run Code Online (Sandbox Code Playgroud)

webkit uiwebview ios swift wkwebview

58
推荐指数
6
解决办法
5万
查看次数

使用POST参数通过UIWebView加载网页

是否可以通过带有POST参数的UIWebView加载页面?我可能只是加载带有参数的嵌入表单并用javascript填充它们并强制提交,但是有更清洁和更快的方法吗?

谢谢!

iphone http uiwebview

54
推荐指数
3
解决办法
4万
查看次数