微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 永远不会调用shouldStartLoadWithRequest

我已经研究和研究,但仍然不明白为什么从未调用过StartLoadWithRequest.我的页面加载正常,并调用了一些UIWebview委托协议方法.请从以下代码中找到相关的摘要

在我的.m中合成我的webview(在头文件中定义):

@implementation PortViewController

@synthesize WebView = myWebView;

我成功加载了我的webview:

myURLString = [Nsstring stringWithFormat:@"https://%@",defaultWebsite];

    myURL = [NSURL URLWithString: myURLString];
    NSURLRequest *myRequest = [NSURLRequest requestWithURL:myURL];
    [myWebView loadRequest:myRequest];

把我的代表设置为自己

- (void)viewDidLoad
{


[super viewDidLoad];
[myWebView setopaque:NO];
[myWebView setBackgroundColor:[UIColor clearColor]];

//myWebView.description.

myWebView.delegate = self;
}

我的所有协议方法都被称为EXCEPT shouldStartLoadWithRequest

- (void)webViewDidStartLoad:(UIWebView *)myWebView {
    [activityIndicator startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)myWebView {
    [activityIndicator stopAnimating];
}

- (BOOL)WebView:(UIWebView *)myWebView shouldStartLoadWithRequest:(NSURLRequest *)request          navigationType:(UIWebViewNavigationType)navigationType {

NSLog(@"inside Webview");
if([[request.URL absoluteString] hasPrefix:@"http://www.nzx"]) {
    // do stuff
    NSLog(@"Have caught the prefix");
    return YES;
}

    return NO;
}

提前致谢.

解决方法

尝试在ViewWillAppear而不是ViewDidLoad中设置委托
-(void)viewWillAppear:(BOOL)animated
{
     myWebView.delegate = self;
}

并在您的PortViewController.m文件的界面中包含webview委托

@interface PortViewController ()<UIWebViewDelegate>


@end

它应该工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐