2017-11-03 9 views
1

여기 내 조건은 URL이 com://******/sendto/webview에 포함되어 있으면 내 응용 프로그램 내부의 브라우저에서 열어야합니다. 그렇지 않으면 Safari에서 열립니다. 내가 뭘 잘못하고 있는지 알 수가 없어? 당신은 "제목"필드의 필터를 얻으려고하지만, URL은 공백 다음 제거 경우는 코드를 작동하고 그래서 여기 URL에 존재하지 않는 출원 된 때문에URLComponents 찾을 없음

 if let url = homeObject["deeplink_url"] as? String, url != "" { 

      if url.contains("com://******/sendto/webview") { 

       if url.contains("?url") { 

        self.fixMalformedURL(url) 

       } else { 

        if let urlComponents = URLComponents(url: URL(string: url)!, resolvingAgainstBaseURL: true) { 
         let webViewTitle = urlComponents.queryItems!.filter({ $0.name == "title" }).first 
         let webViewURL = urlComponents.queryItems!.filter({$0.name == "url"}).first 

         let storyboard = UIStoryboard(name: "Main", bundle: nil) 
         let vc = storyboard.instantiateViewController(withIdentifier: "FeaturedWebViewController") as! FeaturedWebViewController 
         vc.webViewTitle = webViewTitle!.value 
         vc.dynamicURL = webViewURL!.value 
         self.navigationController?.pushViewController(vc, animated: true) 
        } 
       } 

      } else { 

       UIApplication.shared.openURL(URL(string: url)!) 
      } 

     } 
+0

정확히 뭐가 문제 야, 매번 사파리에서 열리는거야? –

+0

그것은 내게 가치없는 정보를 제공하고 내 앱이 그 때문에 붕괴되고 있습니다. 그것은 urlComponents에 관해서는 현금화하고 있습니다. @kirti 말리 –

+0

@AbhijitHadkar 무엇이 당신에게 아무 가치도주지 않습니까? 귀하의 질문을 편집하여 kirti의 질문에 대한 답변에 초점을 맞추십시오. 그 것이 문제의 핵심입니다. – jpaugh

답변

0

앱이 충돌 할 수있다 그것을

let homeObject = ["deeplink_url":"com://www.xxxyyy.com?title=topPersons&url=google.com"] 
    if let url = homeObject["deeplink_url"], url != "" { 

     if url.contains("www.xxxyyy.com") { 

     if url.contains("?url") { 
     //asdj asd asd asdasdfasdf asdfa sdf asdf asdf asdf asdf a sdf asd asdghgjkkjkjkljkljkjkl jkljkljkl jklj jl jljasd asd asdf asd asdf asdf asdf asd asdf asdf aasasaasdasdfasdf asdf asdasdfasdf hoasdasd 


     } else { 




      if let urlComponents = URLComponents(url:URL.init(string: url)!, resolvingAgainstBaseURL: false) 
      { 


      let webViewTitle = urlComponents.queryItems!.filter({ $0.name == "title" }).first 
      let webViewURL = urlComponents.queryItems!.filter({$0.name == "url"}).first 

      let storyboard = UIStoryboard(name: "Main", bundle: nil) 
      let vc = storyboard.instantiateViewController(withIdentifier: "FeaturedWebViewController") as! FeaturedWebViewController 
      vc.webViewTitle = webViewTitle!.value 
      vc.dynamicURL = webViewURL!.value 
      self.navigationController?.pushViewController(vc, animated: true) 
      } 
     } 

     } else { 

     UIApplication.shared.openURL(URL(string: url)!) 
     } 
+0

예제 링크 : - com : //www.xxxyyy.com? title = topPersons & url = http : //google.com 내 URL에 제목이 있습니다. @kirti 말리가 손상 될 수 있습니다. –

+0

URL에 공백이 있으면 제거하십시오. 그것 –

+0

내 URL에 흰색 간격이 없어. URLComponents() 메소드가 www.google.com과 같은 적절한 URL을 원하기 때문에 깨지십니까 ?? –