0

使用语言:Swift 2.3

Viber 发送消息的 url 方案是viber://forward?text=

Whatsapp 发送消息的 url 方案是whatsapp://send?text=

问题是 NSURL 似乎认为上面没有的.url 不是 url,因为这段代码似乎结果为零

let someString = "This is some kind of long string"
print(NSURL(string: "viber://forward?text=\(someString)"))

print(NSURL(string: "viber://whatsapp://send=\(someString)"))

这会产生一个看起来像这样的日志。

nil
nil

这意味着我不能使用UIApplication.sharedApplication().openUrl(someUrl)

4

1 回答 1

1

有些字符不能放在URL/NSURL中。

您必须使用此字符串扩展名someString解析以替换这些字符

stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())

例如:

var someString = "This is some kind of long string"

someString = someString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
于 2017-01-12T12:28:13.887 回答