繁体   English   中英

iOS深层链接:如何在另一个URL中嵌入URL?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM