Modify URL request in shouldStartLoadWithRequest method and displaying in Webview

若如初见. 提交于 2019-12-08 06:08:52

问题


I have one webview and 3 url.

So when application starts i am showing URL1 in webview.

Now when i select any portion of webview it will redirect to URL2.

But only i want to fetch some data from URL2 and dont want to show it to user.

Which i can able to do by using shouldStartLoadWithRequest: method with return NO.

but Now i need to show URL 3 with data received from URL2 in my Webview.

But it is not showing anything ,how can i do it ?

For this i am using following code

-(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:


i did this:

i was trying to send a info via GET method so i substring the last 10 characters (in my case) of any url requested, if it doesn't have the GET method, it make a new request appending the GET method to the url and return NO, next time this function get called it will have the GET method so it will continue.

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



回答2:


This is how I do it

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

                NSURLRequest *objNSURLRequest;

                objNSURLRequest = [NSURLRequest requestWithURL:LocalUrl];

                [yourwebview loadRequest:ObjNSURLRequest];

                [LocalUrl release];

                return NO;


来源:https://stackoverflow.com/questions/10314835/modify-url-request-in-shouldstartloadwithrequest-method-and-displaying-in-webvie

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!