我想创建一个iPhone WebView应用程序。但是有一个问题,如果我点击一些按钮,它会打开正常而不是移动版本。
我确实在Android上创建了相同的WebView应用程序,在那里我使用此代码解决了问题
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(!url.toLowerCase().contains("http://www.example.com/"))
{
webView.loadUrl(url + "?mt=1");
return true;
}
return false;
}
});
如何在xcode上执行此操作?
非常感谢
祝福
多米尼克
答案 0 :(得分:0)
您可以使用UIWebViewDelegate协议执行相同操作。
我认为您可以通过在委托函数中更改NSURLRequest来获得所需的结果 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)请求.......
//delegate methods
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
//use NSURLRequest object request , to manage the request.
//use NSURLRequest object request , to manage the request.
NSURL *urL=request.URL;
NSString *urlStr=[urL absoluteString];
NSLog(@"URLL %@",urlStr);
if([urlStr isEqualToString:@"http://www.google.com/"]){
urL=[NSURL URLWithString:@"http://www.yahoo.com"];
request=[request initWithURL:urL];
[webView loadRequest:request];
}
return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
//start of request
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//finished loading
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
//error
}
这肯定会奏效。当请求www.google.com时,我使用上面的代码加载www.yahoo.com。