NSURLComponents构建方案没有//

时间:2016-03-12 16:23:13

标签: ios xcode swift nsurl

我正在尝试创建一个URL方案,以这种方式打开Tweetbot应用程序。

var urlComponents = NSURLComponents()
urlComponents.scheme = "tweetbot"
urlComponents.path = "BalestraPatrick/user_profile/\(user)"

我的预期结果是: tweetbot://BalestraPatrick/user_profile/username

结果是:tweetbot:BalestraPatrick/user_profile/username

//不会自动添加。如果我尝试将字符添加到方案或路径中,则URL将变为nil。

有任何解决方法吗?

2 个答案:

答案 0 :(得分:3)

如果您未指定//,则会显示host。我认为理想的解决方案是:

let user = "test"

var urlComponents = NSURLComponents()
urlComponents.scheme = "tweetbot"
urlComponents.host = "BalestraPatrick"
urlComponents.path = "/user_profile/\(user)"

print("URL: \(urlComponents.string!)") // URL: tweetbot://BalestraPatrick/user_profile/test

答案 1 :(得分:0)

根据http://tapbots.net/tweetbot3/support/url-schemes/,tweetbot网址方案的格式为tweetbot://<screenname>/<other_stuff>

因此tweetbot是网址的计划,<screenname>是网址的主机,/<other_stuff>是网址的路径和查询。< / p>

所以,Sulthan的答案中的代码是完全正确的(而不是hacky)。