quattro_4 scribble

scribble 落書き (調べた事をただ落書きする)

NSScreencast Episode #119 URL Scheme Callbacks

URL Scheme Callbacks - NSScreencast

URL Schemeでcallbackを使って、遷移してすぐ戻る

  • Info
    • Url types
      • Url Sheme
      • Add url scheme
        • x-callback-wordrev
  • Sending
    • NSURL URLWithString
      • stringWithFormat:@"x-callback-wordrev://x-callback-url?x-source=SchemeDemo&x-success=%@&x-error=%@&x-cancel=%@&word=%@",
        • @"schemedemo://success",
        • @"schemedemo://error",
        • @"schemedemo://cancel",
        • [word stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
    • if ([[UIApplication sharedApplication] canOpenURL:url])
      • [[UIApplication sharedApplication] openURL:url];
  • Calling back
    • word = params[@"word"];
    • word = [word stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    • stringWithFormat:@"%@?word=%@",
      • params[@"x-success"],
      • [reversed stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
    • [[UIApplication sharedApplication] openURL:callbackURL];
  • After callback

    • if ([[url host] isEqualToString:@"success"])
      • [NSNotificationCenter defaultCenter] postNotificationName:@"WordReversed"
  • Handling query

    • query = [url query];
    • NSArray *paramValues = [query componentsSeparatedByString:@"&"];
    • NSMutableDictionary *params = [NSMutableDictionary dictionary];
    • [paramValues enumerateObjectsUsingBlock:^(NSString paramValue, NSUInteger idx, BOOL stop)
      • NSArray *parts = [paramValue componentsSeparatedByString:@"="];
      • NSString *key = [parts firstObject];
      • NSString *value = [parts lastObject];
      • params[key] = value;
  • Methods for String
    • stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding
    • componentsSeparatedByString
  • ViewControllr
    • __weak
    • NotificationCenter
      • strongSelf
  • x-callback-url