arnaucube
arnaucube/openEventsPlatformAppPublic Self-hosted repository
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