【发布时间】:2014-04-24 09:00:13
【问题描述】:
目前我正在开发一个混合应用程序,它使用 webView shouldStartLoadWithRequest: 为登录提供令牌。我的功能适用于我提出的每个正常请求(例如单击)
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request
NSLog([NSString stringWithFormat:@"Loading View: %@",[[request URL] absoluteString]]);
if ([[[request URL] absoluteString] rangeOfString:BASE_URL].location != NSNotFound) {
NSString *token = [[NSUserDefaults standardUserDefaults] stringForKey:kDefaultsKeyLoginToken];
NSString *hash = [[NSUserDefaults standardUserDefaults] stringForKey:kDefaultsKeyLoginHash];
NSString *params = [NSString stringWithFormat:@"mobile=app&user_token=%@&user_hash=%@",token,hash];
if([[request URL] query] == nil) {
[self LoadUrl:[[request URL] absoluteString] withGetParams:params append:NO];
return NO;
}else{
if([[[request URL] absoluteString] rangeOfString:params].location == NSNotFound){
[self LoadUrl:[[request URL] absoluteString] withGetParams:params append:YES];
return NO;
}
}
}
-(void)LoadUrl:(NSString *)url withGetParams:(NSString *)params append:(BOOL)append{
NSString *PreUrl;
if(append == YES) PreUrl = [NSString stringWithFormat:@"%@&%@",url,params];
else PreUrl = [NSString stringWithFormat:@"%@?%@",url,params];
NSURL *nsurl = [NSURL URLWithString: PreUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:nsurl];
[self.WebView loadRequest:request];
}
这段代码的问题是,如果我加载图像,例如它将被检测为“被散列附加”(这是正确的,我希望每个请求都包含 Auth)但是图像将被加载到 Webview 本身中。
我的第一次尝试(在我切换到这个模型之前)是修改解析的请求。但是每一个变化都被忽略了......
有没有人知道我该如何解决这个问题?有没有办法真正修改请求?或者如果没有,我至少可以确定请求的“目标”或转发它吗?
感谢您的帮助
【问题讨论】:
-
你是否厌倦了子类化
UIWebView?
标签: ios objective-c webview shouldstartload