IOS Open Url无法在某些设备上运行

时间:2016-06-21 08:40:38

标签: ios swift uiapplication openurl

@IBAction func openLinkedin() {
    let url = NSURL(string: self.currentUser.linkedin)!

    if(UIApplication.sharedApplication().canOpenURL(url) == true){
        if currentUser.linkedin.rangeOfString("linkedin") != nil{
            UIApplication.sharedApplication().openURL(url)
        }else{
             Utility.sharedInstance.showAlert("\(currentUser.display_name) heeft geen correcte linkedin link.")
        }
        }else{
            Utility.sharedInstance.showAlert("\(currentUser.display_name) heeft geen linkedin link ingevuld.")
        }
}

我的项目中有这些代码。当我测试它时它完美无缺。但由于某种原因,它适用于我的手机,而不是我的测试设备。谁能解释一下发生了什么?

Self.currentUser.linkedin = https://nl.linkedin.com/in/username

当我点击手机上无法正常工作的按钮时,我从canOpenUrl()

中得不到任何错误

这是一个错误吗?

感谢任何人!

塞斯

1 个答案:

答案 0 :(得分:1)

我发现了问题。在测试设备上,safari被取消了。这个打开url的安静失败了。我通过将其置于代码上方来修复它:

    if(!UIApplication.sharedApplication().openURL(url)){
        Utility.sharedInstance.showAlertL("Kan de link niet openen. Kopieer de onderstaande link en plak deze in de browser.", link: self.appDelegate.user.linkedin)
    }

警报看起来像这样:

func showAlertL(message:String, link:String){
    let responseAlert = UIAlertView()
    responseAlert.alertViewStyle = UIAlertViewStyle.PlainTextInput
    let tekstfield = responseAlert.textFieldAtIndex(0)
    tekstfield?.text = link
    responseAlert.title = "Opes!"
    responseAlert.message = message
    responseAlert.addButtonWithTitle("OK")
    responseAlert.show()
}

如果它以静默方式失败,则此错误消息将提示并放入带有链接的文本字段中。这样,用户就可以将其复制并粘贴到浏览器中。

我希望它也可以帮助其他人!

塞斯