簡體   English   中英

shouldStartLoadWithRequest委托方法從未調用

[英]shouldStartLoadWithRequest delegate method never called

我正在創建一個具有網絡視圖的應用程序。 當用戶單擊Web視圖中的鏈接或按鈕時,我希望能夠獲取新的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];
}

如果您的Controller實例將自身添加為委托,則將永遠不會調用您添加到AppDelegate實例的方法。

shouldStartLoadWithRequest方法移至Controller類。

您已將視圖控制器設置為Web視圖的委托。 但是,您已經在應用程序的委托中實現了UIWebView委托方法。

嘗試在視圖控制器中實現該委托方法。 您的視圖控制器是您的Web視圖的委托。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM