2014年8月6日水曜日

LINE連携で少しはまった

いろんなサイトに

NSString *url = [NSString stringWithFormat:@"line://msg/text/%@",text];
NSURL* lineUrl = [NSURL URLWithString:url];
[[UIApplication sharedApplication] openURL:lineUrl];

canOpenURLは一旦無視したとして、だいたいこれでいけるよって書いてます。

ウソですね。

ちゃんとテキストをURLエンコードする必要があります。

NSString *url = [[NSString stringWithFormat:@"line://msg/text/%@",text] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

これ。


以前はさらにURIEncodeを確実に行うために、

(NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                                 (CFStringRef)str,
                                                                                 NULL,
                                                                                 (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                                                kCFStringEncodingUTF8);

ここまでやっていました。
ARC使う場合はさらにややこです。。。


めんどくせw

0 件のコメント:

コメントを投稿