File tree Expand file tree Collapse file tree 4 files changed +25
-1
lines changed Expand file tree Collapse file tree 4 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -79,4 +79,11 @@ - (void)test_base64EncodedStringFromData {
7979 XCTAssertEqualObjects (base64String, expectedSring);
8080}
8181
82+ - (void )test_urlEncodedStringFromString {
83+ XCTAssertEqualObjects ([Utils urlEncodedStringFromString: @" http://www.leanplum.com" ], @" http://www.leanplum.com" );
84+ XCTAssertEqualObjects ([Utils urlEncodedStringFromString: @" http://www.leanplum.com?q=simple_english1&test=2" ], @" http://www.leanplum.com?q=simple_english1&test=2" );
85+ XCTAssertEqualObjects ([Utils urlEncodedStringFromString: @" https://ramsey.tfaforms.net/356302?id={}" ], @" https://ramsey.tfaforms.net/356302?id=%7B%7D " );
86+ XCTAssertEqualObjects ([Utils urlEncodedStringFromString: @" lomotif://music/月亮" ], @" lomotif://music/%E 6%9C%88% E4%BA%A E" );
87+ }
88+
8289@end
Original file line number Diff line number Diff line change 2929#import " LPMessageTemplates.h"
3030#import < QuartzCore/QuartzCore.h>
3131#import < StoreKit/StoreKit.h>
32+ #import " Utils.h"
3233
3334#define APP_NAME (([[NSBundle mainBundle ] objectForInfoDictionaryKey: @" CFBundleDisplayName" ]) ?: \
3435 ([[NSBundle mainBundle ] objectForInfoDictionaryKey: @" CFBundleName" ]))
@@ -323,7 +324,7 @@ - (void)defineActions
323324 withResponder: ^BOOL (LPActionContext *context) {
324325 @try {
325326 dispatch_async (dispatch_get_main_queue (), ^{
326- NSString *encodedURLString = [[context stringNamed: LPMT_ARG_URL] stringByAddingPercentEncodingWithAllowedCharacters: [ NSCharacterSet URLHostAllowedCharacterSet ]];
327+ NSString *encodedURLString = [Utils urlEncodedStringFromString: [context stringNamed: LPMT_ARG_URL]];
327328 NSURL *url = [NSURL URLWithString: encodedURLString];
328329 if ([[UIApplication sharedApplication ] respondsToSelector: @selector (openURL:options:completionHandler: )]) {
329330 [[UIApplication sharedApplication ] openURL: url options: @{} completionHandler: nil ];
Original file line number Diff line number Diff line change 4747 */
4848+ (NSString *)base64EncodedStringFromData : (NSData *)data ;
4949
50+ /* *
51+ * Returns unicode encoded string for supporting international
52+ * characters in URL
53+ */
54+ + (NSString *)urlEncodedStringFromString : (NSString *)urlString ;
55+
5056@end
Original file line number Diff line number Diff line change @@ -71,4 +71,14 @@ + (NSString *)base64EncodedStringFromData:(NSData *)data
7171
7272}
7373
74+ +(NSString *)urlEncodedStringFromString : (NSString *)urlString {
75+ NSString *unreserved = @" :-._~/?&=" ;
76+ NSMutableCharacterSet *allowed = [NSMutableCharacterSet
77+ alphanumericCharacterSet ];
78+ [allowed addCharactersInString: unreserved];
79+ return [urlString
80+ stringByAddingPercentEncodingWithAllowedCharacters:
81+ allowed];
82+ }
83+
7484@end
You can’t perform that action at this time.
0 commit comments