[英]iOS deep linking: how to embed URL in another URL?
我需要使用另一个URL深度链接到我的应用,例如,如果我的自定义方案是:
myapp://
那么深层链接网址如下所示:
myapp://?type=url&url=[another URL]
问题是“另一个URL”可能包含?,/,&等分隔符,我考虑过使用引号:
myapp://?type=url&url="http://another.url"
但是,另一个URL中也可能带有引号,那么有办法吗?
谢谢
您需要正确地转义第二个URL中的所有特殊字符。 我使用编写的实用程序方法来帮助您:
+ (NSString *)encodeString:(NSString *)string {
NSString *result = (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, CFSTR("% '\"?=&+<>;:-#\\/~`!"), kCFStringEncodingUTF8);
return result;
}
将其放置在适当的位置(在某些帮助程序类中或添加到某些类别中),您可以执行以下操作:
NSString *link = @"http://another.url";
NSString *escapedLink = [SomeUtility encodeString:link];
NSString *myURL = [NSString stringWithFormat:@"myapp://?type=url&url=%@", escapedLink];
请注意,应使用该encodeString:
方法正确地转义您可能用来构建URL查询字符串的任何URL参数值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.