我有一个网页流量和3网址。
所以,当应用程序启动时我显示在网页视图URL1。
现在,当我选择的WebView的任何部分,它会重定向到URL2。
但是,只有我想获取来自URL2一些数据和不想要展示给用户。
我可以能够通过使用shouldStartLoadWithRequest做:法不返回。
但现在我需要显示的URL 3,在我的网页视图从URL2接收到的数据。
但它没有显示任何东西,我该怎么办呢?
对于这个我使用下面的代码
-(void)viewDidLoad
{
//Normal showing of URL1 in webview
}
- (BOOL)webView:(UIWebView*)webViewRef shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
{
if(selectedDataExist){
//get data from URL2
//Make New URL3 string
[webView loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:myNewUrlString]]];
return NO;
}
else
{
//by default URL1 comes
return YES;
}
我这样做:
我试图通过发送GET方法的信息,所以我子串的任何URL的最后10个字符(对我来说)的要求,如果没有GET方法,它使一个新的请求追加GET方法的URL和返回NO,下次这个函数被调用它会GET方法,因此它将继续。
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *urls = [request.URL absoluteString];
NSString *code = [urls substringFromIndex: [urls length] - 10];
if (![code isEqualToString:@"?iphone=si"]) {
NSURL *nueva = [NSURL URLWithString:[NSString stringWithFormat:@"%@?iphone=si",urls]];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:nueva];
[self.mywebview loadRequest:requestObj];
return NO;
}
return YES;
}
这就是我要做的事
NSURL *LocalUrl = [[NSURL alloc] initWithString:[newUrl stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding]];
NSURLRequest *objNSURLRequest;
objNSURLRequest = [NSURLRequest requestWithURL:LocalUrl];
[yourwebview loadRequest:ObjNSURLRequest];
[LocalUrl release];
return NO;
文章来源: Modify URL request in shouldStartLoadWithRequest method and displaying in Webview