我正在创建一个具有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];
}
答案 0 :(得分:1)
如果您的Controller
实例将自己添加为委托,那么您将永远不会调用添加到AppDelegate
实例的方法。
将shouldStartLoadWithRequest
方法移至Controller
班。
答案 1 :(得分:0)
您已将视图控制器设置为Web视图的委托。但是,您已经在我们的应用程序的委托中实现了UIWebView委托方法。
尝试在视图控制器中实现该委托方法。您的视图控制器是您的Web视图的委托。