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