J'essaie d'ouvrir l'URL suivante dans UIWebView
mais elle ne parvient pas à se charger alors que je la change en:
http://www.google.com
fonctionne bien.
L'URL que je veux charger est:
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@%@%@%@",@"http://m.forrent.com/search.php?address=",[[bookListing objectForKey:@"Data"] objectForKey:@"Zip"],@"&beds=&baths=&price_to=0#{\"lat\":\"0\",\"lon\":\"0\",\"distance\":\"25\",\"seed\":\"1622727896\",\"is_sort_default\":\"1\",\"sort_by\":\"\",\"page\":\"1\",\"startIndex\":\"0\",\"address\":\"",[[bookListing objectForKey:@"Data"] objectForKey:@"Zip"],@"\",\"beds\":\"\",\"baths\":\"\",\"price_to\":\"0\"}"]]]];
METTRE À JOUR:
J'ai délibérément échappé aux guillemets, sinon cela me donne une erreur ... J'ai vérifié l'URL en l'ouvrant dans mon navigateur (sur un ordinateur portable) et cela fonctionne parfaitement
L'URL dans le navigateur:
http://m.forrent.com/search.php?address=92115&beds=&baths=&price_to=0#{%22lat%22:%220%22,%22lon%22:%220%22,%22distance%22:%2225%22,%22seed%22:%221622727896%22,%22is_sort_default%22:%221%22,%22sort_by%22:%22%22,%22page%22:%221%22,%22startIndex%22:%220%22,%22address%22:%2292115%22,%22beds%22:%22%22,%22baths%22:%22%22,%22price_to%22:%220%22}
Votre ligne de code semble compliquée, mais au fond, c’est très simple.
Vous devez séparer ce code d'un seul support en plusieurs lignes plus lisibles. Cela vous permettra également de vous connecter et de vérifier l'URL que vous avez réellement créée, comme ceci:
NSLog(@"My url: %@", urlString);
Mise à jour: je vois que vous avez ajouté l'URL complète. Webview ne parvient en effet pas à charger cette URL (erreur UIWebkit 101).
La partie de l'URL qui cause le problème est le caractère '#' et le dictionnaire qui suit dans les paramètres. Vous devriez encoder cette partie de l'URL.
Essaye ça:
NSString *address = @"http://m.forrent.com/search.php?";
NSString *params1 = @"address=92115&beds=&baths=&price_to=0";
// URL encode the problematic part of the url.
NSString *params2 = @"#{%22lat%22:%220%22,%22lon%22:%220%22,%22distance%22:%2225%22,%22seed%22:%221622727896%22,%22is_sort_default%22:%221%22,%22sort_by%22:%22%22,%22page%22:%221%22,%22startIndex%22:%220%22,%22address%22:%2292115%22,%22beds%22:%22%22,%22baths%22:%22%22,%22price_to%22:%220%22}";
params2 = [self escape:params2];
// Build the url and loadRequest
NSString *urlString = [NSString stringWithFormat:@"%@%@%@",address,params1,params2];
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
La méthode d'échappement que j'ai utilisée:
- (NSString *)escape:(NSString *)text
{
return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(__bridge CFStringRef)text, NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
}
Je voudrais essayer d'encoder tous les éléments clé/valeur dans votre URL. Plus précisément, les accolades ({}) et les symboles dièse (#) peuvent être à l'origine d'un problème.