标签: uiwebviewdelegate

如何删除UIWebView的所有cookie?

在我的应用程序中,我有一个UIWebview加载linkedin auth页面登录.当用户登录时,cookie会保存到应用程序中.

我的应用程序有一个与linkedin登录无关的注销按钮.因此,当用户点击此按钮时,他会从应用程序中注销.我希望这个注销将从应用程序中清除他的linkedin cookie,以便用户完全注销.

iphone objective-c uiwebview ios uiwebviewdelegate

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

如何在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万
查看次数

如何获取HTTP标头

如何从NSURLRequestObjective-C中检索所有HTTP头?

http objective-c uiwebview uiwebviewdelegate

28
推荐指数
2
解决办法
3万
查看次数

如何在UIWebView中禁用长触摸?

我想禁用应用程序中的长触摸.我无法控制我在WebView上加载的HTML.

uiwebview uiwindow uiwebviewdelegate

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

UIWebView:加载某些URL时未调用的webViewDidStartLoad/webViewDidFinishLoad委托方法

我有使用a实现的基本Web浏览器UIWebView.我注意到对于某些页面,没有一个UIWebViewDelegate方法被调用.

发生这种情况的示例页面是:http://www.youtube.com/user/google.以下是重现问题的步骤(确保NSLog在控制器的UIWebViewDelegate方法中插入调用):

  1. 将上面的youtube URL加载到UIWebView [注意这里,UIWebViewDelegate在页面加载时调用方法]
  2. 触摸页面上的"上传"类别
  3. 触摸该类别中的任何视频[ 问题:请注意已加载新页面,但未调用任何UIWebView代理]

我知道这不是UIWebView代理没有正确设置的问题,因为委托方法在加载其他链接时会被调用(例如,如果你尝试点击链接将你带到youtube之外,你会注意到代表被调用的方法).

我最初的直觉是它可能是因为页面是使用AJAX加载的,这可能不会调用委托方法.但是当我检查iPhone的Safari时,它没有出现这个问题,所以它一定是我身边的东西.

我也注意到Three20的TTWebController问题与我的问题完全相同.

但是这个问题引起的问题是,如果没有调用委托方法,我将无法更新UI以在加载新请求时启用/禁用后退和前进浏览按钮.

并且想出为什么会发生这种情况或者如何在新请求发生时更新UI?

iphone uiwebview uiwebviewdelegate

17
推荐指数
1
解决办法
8898
查看次数

如何检测UIWebView何时完全加载?

我正在尝试为UIWebView构建一个过滤器,我正在努力检测UIWebView何时完全加载.我使用了以下两种方法

– webView:shouldStartLoadWithRequest:navigationType:
– webViewDidFinishLoad:
Run Code Online (Sandbox Code Playgroud)

但问题是,当页面包含要加载的帧和其他内容时,这些将被多次调用.

我需要知道什么时候视图已经完全加载,并且没有更多的内容可以获取.然后,当内容加载后,我可以根据已批准的URL列表检查页面的URL.

有任何想法吗?

objective-c uiwebview ios uiwebviewdelegate

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

UIWebview中的NSString

我的项目中有一个NSString和一个webView(iPhone的Objective-C),我index.html在webView中调用,在里面我插入了我的脚本(javascript).

如何在我的脚本中将NSString作为var传递,反之亦然?

这是一个例子,但我不太了解它.

javascript iphone objective-c uiwebview uiwebviewdelegate

13
推荐指数
1
解决办法
9681
查看次数

为UIWebView设置委托

如何设置为我的委托UIWebView来使用webViewDidFinishLoad

objective-c uiwebview ios uiwebviewdelegate

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

UIWebView第一次请求太慢

UIWebView用来在我的应用程序中呈现Web内容.我观察到应用程序启动时的初始请求,即loadRequest需要很长时间才能呈现内容.然而,我不跟踪的后续请求要快得多.
为了证实这一点,我创建了一个独立的应用程序,它只有一个UIWebView.这是我添加的单行代码:

[wkBrowser loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.yahoo.com"]]];
Run Code Online (Sandbox Code Playgroud)

结果是一样的.加载页面大约需要15-20秒.但是,在点击网页上的任何链接时,加载下一页需要3-5秒.我确实把UIWebView委托函数didFailLoadWithError,但从来没有错误.
问题:

  1. 为什么第一个Web请求这么慢?
  2. 除了缓存之外,我怎么能让它更快?

iphone uiwebview ios uiwebviewdelegate

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

找不到webLink时,UIWebView不会转到didFailLoadWithError?

我用来UIWebView从a加载web webLinkUIWebViewDelegate控制错误状态:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:webLink]]];


- (void)webViewDidStartLoad:(UIWebView *)webView{
    NSLog(@"START LOAD");

}

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    NSLog(@"FINISH LOAD");
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
    NSLog(@"ERROR : %@",error);
}
Run Code Online (Sandbox Code Playgroud)

但是,当webLink没有找到,它不会去didFailLoadWithError,它去startLoaddidFinishLoad.如何webLink找到未找到的情况?请帮忙!

objective-c uiwebview ios uiwebviewdelegate

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