从未调用过shouldStartLoadWithRequest委托方法

时间:2013-07-04 19:28:40

标签: iphone ios xcode uiwebview appdelegate

我正在创建一个具有webview的应用程序。当用户点击webview中的链接或按钮时,我希望能够获取新的URL,并编辑新的URL。

shouldStartLoadWithRequest应该做的伎俩,但是当我点击链接时,永远不会调用该方法。我找不到为什么这不起作用。

我在某处读过我需要添加这一行的内容:

webView.delegate = (id)self;

我试过了,仍然遇到同样的问题。请帮忙

AppDelegate.m

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *currentURL = [[request URL] absoluteString] ;

    NSLog(@"Url: %@", currentURL);
    return YES;
}

Controller.m或者

- (void)viewDidLoad
{
    webView.delegate = (id)self;
    NSString *tokenString = @"123";
    [super viewDidLoad];

    NSString *fullURL = [[NSString alloc] initWithFormat:@"http://192.168.1.69:8888/webapp/test.php?uid=%@", tokenString];
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];
}

2 个答案:

答案 0 :(得分:1)

如果您的Controller实例将自己添加为委托,那么您将永远不会调用添加到AppDelegate实例的方法。

shouldStartLoadWithRequest方法移至Controller班。

答案 1 :(得分:0)

您已将视图控制器设置为Web视图的委托。但是,您已经在我们的应用程序的委托中实现了UIWebView委托方法。

尝试在视图控制器中实现该委托方法。您的视图控制器是您的Web视图的委托。