修改URL请求在shouldStartLoadWithRequest方法和在网页视图显示(Modif

2019-09-16 18:00发布

我有一个网页流量和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;
}

Answer 1:

我这样做:

我试图通过发送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;
}


Answer 2:

这就是我要做的事

                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