openEventsPlatformApp/plugins/cordova-plugin-x-socialsharing/src/ios/NSString+URLEncoding.m
plugins/cordova-plugin-x-socialsharing/src/ios/NSString+URLEncoding.mRaw
1#import "NSString+URLEncoding.h"
2
3@implementation NSString (URLEncoding)
4- (NSString*)URLEncodedString
5{
6 NSString* result = (NSString *)CFBridgingRelease(
7 CFURLCreateStringByAddingPercentEscapes(
8 kCFAllocatorDefault,
9 (CFStringRef)self,
10 CFSTR("#%"), // don't escape these
11 NULL, // allow escaping these
12 kCFStringEncodingUTF8
13 )
14 );
15
16 // we may have a URL with more than one '#' now - which iOS doesn't allow, so escape all but the first one
17 NSArray *parts = [result componentsSeparatedByString:@"#"];
18 NSString *finalResult = parts[0];
19 for (int i=1; i<parts.count; i++) {
20 NSString *part = [parts objectAtIndex:i];
21 if (i==1) {
22 finalResult = [finalResult stringByAppendingString:@"#"];
23 } else {
24 finalResult = [finalResult stringByAppendingString:@"%23"];
25 }
26 finalResult = [finalResult stringByAppendingString:part];
27 }
28 return finalResult;
29}
30@end