首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当组件失败时未调用WKWebView - didFailProvisionalNavigation

当组件失败时未调用WKWebView - didFailProvisionalNavigation
EN

Stack Overflow用户
提问于 2016-12-15 12:02:57
回答 1查看 4.1K关注 0票数 14

当加载在WKWebView中的页面组件失败时,我试图记录一个错误,但是没有调用didFailProvisionalNavigation

我从我的页面中删除了一个css文件来进行测试,但是没有结果。

当我在Google上加载页面时,我可以找到丢失的文件

WKWebView初始化为:

代码语言:javascript
复制
@interface MyWebView : UIViewController <WKNavigationDelegate>
@property(strong,nonatomic) WKWebView *loginWebView;
@end

.m文件

代码语言:javascript
复制
@implementation MyWebView

- (void) initWebView {

    // Set and Load the WebView
    self.webView = [[WKWebView alloc] initWithFrame:self.view.frame];
    self.webView.navigationDelegate = self;
    [self.webView loadRequest:request];
    [self.view addSubview:self.webView];
}

然后,我实现了以下方法:

代码语言:javascript
复制
webView:decidePolicyForNavigationAction:decisionHandler:
webView:didStartProvisionalNavigation:
webView:didFinishNavigation:
webView:didFailNavigation:withError:
webView:didFailProvisionalNavigation:withError:

前三个方法被调用,但是didFailNavigationdidFailProvisionalNavigation都没有被调用

通过查看文档 for didFailProvisionalNavigation,我们有

在web视图加载内容时发生错误时调用。

好的,一个内容失败了(css文件)并且方法没有被调用,我怎么做呢?

PS :我也尝试过使用UIWebView

EN

回答 1

Stack Overflow用户

发布于 2020-10-14 10:24:43

代码语言:javascript
复制
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler{
    NSInteger statusCode = ((NSHTTPURLResponse *)navigationResponse.response).statusCode;
    NSLog(@"statusCode:%ld", statusCode);
    if (statusCode/100 == 4 || statusCode/100 == 5) {
        NSLog(@"webview error:%@", navigationResponse.response);
    }
    decisionHandler(WKNavigationResponsePolicyAllow);
}

这行得通!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41163722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档