J'utilise un schéma d'URL dans mon application iPhone, d'une page que je change d'user à un safari, et un clic de button d'une page Web, je reviens à l'application À ce moment, certains parameters sont passés par la page Web comme
myapp://parameter=1
Comment puis-je find ce paramètre dans mon application? J'ai placé un sharepoint rupture dans
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)ur
mais tout en revenant back.it n'est pas appelé.
Vous pouvez utiliser cet url host
pour find les parameters, où les parameters peuvent être de n'importe quel type, n'importe quoi après que http://
ou custom custom://
seront capturés dans le code suivant
NSSsortingng *urlParameter = [[url host] ssortingngByReplacingPercentEscapesUsingEncoding:NSUTF8SsortingngEncoding];
Si vous avez plusieurs parameters, vous pouvez utiliser la méthode componentsSeparatedBySsortingng
pour séparer les parameters
NSSsortingng *query = [url query]; NSArray *queryComponents = [query componentsSeparatedBySsortingng:@"&"];
Maintenant, vous avez toutes les strings dans queryComponents comme
param1=value
Maintenant, vous pouvez get la première valeur comme ça
NSArray *firstParam = [[queryComponents objectAtIndex:0] componentsSeparatedBySsortingng:@"="]; [firstParam objectAtIndex:0] is the name of param [firstParam objectAtIndex:1] is value of the param
Essayez ce code. Ceci est utile même si vous avez des nombres de parameters et de valeurs dans l'URL.
NSURL *url = [NSURL URLWithSsortingng:@"xyz.com/result.php?data1=1123660801&data2=250072028055&presult=SUCCESS"]; NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO]; NSArray *queryItems = [components queryItems]; NSMutableDictionary *dict = [NSMutableDictionary new]; for (NSURLQueryItem *item in queryItems) { [dict setObject:[item value] forKey:[item name]]; }