0
@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.")
        }
}

i have this pice of code in my project. When i test it it works flawlessly. But for some reason it works on my phone and not on my test device. Can anyone explain what is happening?

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

when i tap the button on the phone where it is not working i dont get any errors from canOpenUrl()

is this a bug?

Thanks for any awnser!

Cees

Cees
  • 415
  • 2
  • 16

1 Answers1

1

I found the problem. On the test device safari was disabeld. This ment that open url failed silently. i fixed it by putting this above the code:

    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)
    }

the alert looked like this:

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()
}

if it fails silently this error message will promt and put in a textfield with the link inside it. that way the user can copy it and paste it in an brower.

I hope it helps someone else too!

Cees

Cees
  • 415
  • 2
  • 16