在 NSURL() 上使用 url 方案会导致 nil
Using a url scheme on NSURL() results to nil
使用的语言:Swift 2.3
Viber 的 url 发送消息的方案是 viber://forward?text=
Whatsapp 的 url 发送消息的方案是 whatsapp://send?text=
问题是 NSURL 似乎认为没有 .
的 url 不是 url,因为这段代码似乎导致 nil
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)
有些字符不能放在 URL
/NSURL
中。
您必须解析 someString
才能使用此 字符串扩展名
替换这些字符
stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
例如:
var someString = "This is some kind of long string"
someString = someString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
使用的语言:Swift 2.3
Viber 的 url 发送消息的方案是 viber://forward?text=
Whatsapp 的 url 发送消息的方案是 whatsapp://send?text=
问题是 NSURL 似乎认为没有 .
的 url 不是 url,因为这段代码似乎导致 nil
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)
有些字符不能放在 URL
/NSURL
中。
您必须解析 someString
才能使用此 字符串扩展名
stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
例如:
var someString = "This is some kind of long string"
someString = someString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())