Olá, sou novo no Objective-C, e peguei um projeto para dar manutenção na minha empresa, nao me condenem a ideia nao foi minha kkk
Mas o seguinte, temos um app que abre uma UIWebView para um arquivo local que vai empacotado junto do app. Isso sempre funcionou da forma que estava, porem agora na primeira vez que abro o aplicativo apos instalado ocorre uma falha não encontra o index.html, porem se encerro o app e abro novamente sem reinstala-lo funciona normalmente.
Verificando o codigo, ao abrir o app, o controller (codigo abaixo) realiza uma copia dos arquivos webs de um diretorio para outro (um diretorio do usuario aparentemente), e mesmo fazendo a copia com sucesso (debuguei) o app nunca funciona na primeira abertura.
Alguem pode me explicar se o processo esta correto, ou se tem uma outra forma que posso fazer? Estou bem perdido e nao consegui encontrar uma soluçao pra isso.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
NSString *urlStr = url.absoluteString;
NSLog(@"shouldStartLoadWithRequest %@",urlStr);
return [self processaURL:urlStr];
}
.
.
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self preparaHtmlLocalCompletion:^(NSString *path) {
dispatch_async(dispatch_get_main_queue(), ^{
if ([Sessao usuarioLogado]) {
[self obtemKPIsCompletion:^{
// Carrega o webview
NSString *principalHtmlPath = [path stringByAppendingPathComponent:@"index.html"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:principalHtmlPath]];
[self.webView loadRequest:request];
}];
}
else {
[Sessao logoff];
[self fecharAnimado:NO];
}
});
}];
}
.
.
.
for (NSURL *fileURL in enumerator) {
NSString *filename;
[fileURL getResourceValue:&filename forKey:NSURLNameKey error:nil];
NSNumber *isDirectory;
[fileURL getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:nil];
NSString *destinationPath = [[destinoURL path] stringByAppendingPathComponent:[fileURL lastPathComponent]];
if ([isDirectory boolValue]) {
// Cria o diretório e copia o conteúdo
if (![fileManager fileExistsAtPath:destinationPath isDirectory:nil]){
NSURL *destinationURL = [NSURL fileURLWithPath:destinationPath];
[fileManager createDirectoryAtURL:destinationURL withIntermediateDirectories:YES attributes:nil error:nil];
[self copia:fileURL paraDestino:destinationURL];
}
}
else {
// Copia o arquivo
if (![fileManager fileExistsAtPath:destinationPath isDirectory:nil]){
[fileManager copyItemAtURL:fileURL toURL:[NSURL fileURLWithPath:destinationPath] error:nil];
}
}
}
Obrigado.