簡體   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