Ios 链接到应用商店,应用名称中带有“空格”

Ios 链接到应用商店,应用名称中带有“空格”,ios,swift,sprite-kit,app-store,Ios,Swift,Sprite Kit,App Store,我想从我的应用程序直接链接到应用程序商店 我正在使用以下代码: var url = NSURL(string: "itms-apps://itunes.com/apps/companyname/appname") if UIApplication.sharedApplication().canOpenURL(url!) == true { UIApplication.sharedApplication().openURL(url!

我想从我的应用程序直接链接到应用程序商店

我正在使用以下代码:

   var url  = NSURL(string: "itms-apps://itunes.com/apps/companyname/appname")
            if UIApplication.sharedApplication().canOpenURL(url!) == true  {
                UIApplication.sharedApplication().openURL(url!)
            }
当应用程序的名称中没有空格时,它可以正常工作。但是如果应用程序名称中有空格,它不会链接到应用程序本身,但会链接到包含我所有应用程序的页面。为什么

示例:如果app name=bobbie,我使用:

var url  = NSURL(string: "itms-apps://itunes.com/apps/mycompany/bobbie")
            if UIApplication.sharedApplication().canOpenURL(url!) == true  {
                UIApplication.sharedApplication().openURL(url!)
            }
var url  = NSURL(string: "itms-apps://itunes.com/apps/mycompany/bob-bie")
            if UIApplication.sharedApplication().canOpenURL(url!) == true  {
                UIApplication.sharedApplication().openURL(url!)
            }
完美地工作

但it应用程序名称=bob bie,我使用:

var url  = NSURL(string: "itms-apps://itunes.com/apps/mycompany/bobbie")
            if UIApplication.sharedApplication().canOpenURL(url!) == true  {
                UIApplication.sharedApplication().openURL(url!)
            }
var url  = NSURL(string: "itms-apps://itunes.com/apps/mycompany/bob-bie")
            if UIApplication.sharedApplication().canOpenURL(url!) == true  {
                UIApplication.sharedApplication().openURL(url!)
            }

但这不会链接到应用程序…

使用iTunes connect中为应用程序提供的链接

打开 登录 单击我的应用程序 选择你的应用程序 点击更多 复制应用商店中显示的链接
您只需使用StringByAddingPercentescapesusingEncode将空间替换为%20即可:

let link = "itms-apps://itunes.com/apps/mycompany/bob bie"
if let linkWithPercentEscape = link.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) {
    println(linkWithPercentEscape)
    if let url  = NSURL(string: linkWithPercentEscape) {
        println(url)
        if UIApplication.sharedApplication().canOpenURL(url)  {
            UIApplication.sharedApplication().openURL(url)

        }
    }
}
可能重复的