2012-04-25 7 views
1

하나의 webview와 3 개의 URL이 있습니다.shouldStartLoadWithRequest 메서드에서 URL 요청을 수정하고 Webview에 표시

그래서 응용 프로그램이 시작될 때 나는 webview에서 URL1을 보여주고 있습니다.

이제 webview의 일부를 선택하면 URL2로 리디렉션됩니다.

하지만 URL2에서 일부 데이터를 가져 와서 사용자에게 보여주고 싶지 않습니다.

shouldStartLoadWithRequest : 메소드를 사용하여 return NO로 할 수있는 작업은 다음과 같습니다.

하지만 이제 웹보기에서 URL2에서받은 데이터로 URL 3을 표시해야합니다.

하지만 아무 것도 표시하지 않습니다. 어떻게 할 수 있습니까? 이를 위해

나는 다음과 같은 코드

-(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; 
} 

답변

-1

를이 내가 어떻게되어 사용하고 그것을

   NSURL *LocalUrl = [[NSURL alloc] initWithString:[newUrl stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding]]; 

       NSURLRequest *objNSURLRequest; 

       objNSURLRequest = [NSURLRequest requestWithURL:LocalUrl]; 

       [yourwebview loadRequest:ObjNSURLRequest]; 

       [LocalUrl release]; 

       return NO; 
1

내가 한이 : 나는 그래서 GET 방법을 통해 정보를 보내려고했다

내가 요청한 URL의 마지막 10 문자 (내 경우에는) GET 메서드가 없으면 URL에 GET 메서드를 추가하고 NO로 반환하는 새로운 요청을 만듭니다.이 함수는 다음에 w라는 함수를 호출합니다. 병이 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; 
} 
관련 문제