2016-06-21 5 views
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.") 
     } 
} 

내 프로젝트에이 코드가 있습니다. 내가 그것을 테스트 할 때 그것은 완벽하게 작동한다. 하지만 어떤 이유로 내 전화가 아닌 내 테스트 장치에서 작동합니다. 아무도 무슨 일이 일어나고 있는지 설명 할 수 있습니까?일부 장치에서 IOS 열기 URL이 작동하지 않습니다.

Self.currentUser.linkedin =

내가 그것을 canOpenUrl에서 오류를 얻을 내가 그나마 작동하지 않는 전화기의 버튼을 누릅니다 https://nl.linkedin.com/in/username()

이 버그인가?

감사합니다.

씨디

답변

1

이 문제점을 발견했습니다. 테스트 장비에서 사파리가 교착 상태에 빠졌습니다. 열린 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() 
} 

을가 자동으로이 오류 메시지가 PROMT과 내부 링크가 포함 된 텍스트 필드에 넣어합니다 실패하는 경우. 그런 식으로 사용자는 복사하여 브라우저에 붙여 넣을 수 있습니다.

나는 그것이 다른 사람에게도 도움이되기를 바랍니다!

씨디