Ios 获取2个uiwebview';然后放到他们自己的地址栏上
在我的应用程序中,我有两个UIWebView和两个地址栏,分别称为WebView和WebView2、WebAddress和WebAddress2。我需要从WebView获取url并将其放到WebAddress,从WebView2获取url并将其放到WebAddress2 当我使用这段代码时,URL更新只出现在第一个WebAddress中,WebView2中的URL也出现在第一个WebAddress中。此外,WebView2中的所有页面开始在WebView中加载Ios 获取2个uiwebview';然后放到他们自己的地址栏上,ios,xcode,uiwebview,uiwebviewdelegate,Ios,Xcode,Uiwebview,Uiwebviewdelegate,在我的应用程序中,我有两个UIWebView和两个地址栏,分别称为WebView和WebView2、WebAddress和WebAddress2。我需要从WebView获取url并将其放到WebAddress,从WebView2获取url并将其放到WebAddress2 当我使用这段代码时,URL更新只出现在第一个WebAddress中,WebView2中的URL也出现在第一个WebAddress中。此外,WebView2中的所有页面开始在WebView中加载 - (BOOL)webVi
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
//CAPTURE USER LINK-CLICK.
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSURL *URL = [request URL];
if ([[URL scheme] isEqualToString:@"http"]) {
[webAdress setText:[URL absoluteString]];
[self gotoAddress:nil];
}
return NO;
}
return YES;
}
- (BOOL)webView2:(UIWebView*)webView2 shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
//CAPTURE USER LINK-CLICK.
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSURL *URL = [request URL];
if ([[URL scheme] isEqualToString:@"http"]) {
[webAdress2 setText:[URL absoluteString]];
[self gotoAddress2:nil];
}
return NO;
}
return YES;
}
我想您只需要一个委托方法。检查哪个webview触发了此委托方法,并根据以下内容执行操作:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
//CAPTURE USER LINK-CLICK.
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSURL *URL = [request URL];
if ([[URL scheme] isEqualToString:@"http"]) {
if (webView == webView1)
[webAdress setText:[URL absoluteString]];
if (webView == webView2)
[webAdress2 setText:[URL absoluteString]];
[self gotoAddress2:nil];
}
return NO;
}
return YES;
}
只需将所有web视图的代理设置为self,您就可以使用此方法处理所有操作。我为WebView、WebView2、WebAddress、WebAddress2设置了代理出口。当我尝试使用您的代码时,xcode会给我错误。在这一行如果(webView==webView1)2错误:“webView”的本地声明隐藏实例变量和未声明标识符“webView1”的使用,在这一行如果(webView==webView2)它说“webView”的本地声明隐藏实例变量,则只需将提供的方法中的参数重命名为其他名称。而不是
webView
。因为您没有webView 1)。重命名它。