【Swift】UITextView로 HTML을 표시해 앵커 태그를 탭 가능하게 한다

3567 단어 HTMLiOSSwiftTextView

하고 싶은 일



UITextView에서 html을 표시하고 앵커 태그를 탭 가능하게 했을 뿐입니다만, 글의 기사를 참고로 해도 구현을 할 수 없었으므로 성공 체험을 공유할 수 있으면 좋겠습니다.

환경


  • Xcode: 12.5.1
  • Swift: 5.4.2

  • 구현



    NSAttributedString 형으로 변환할 때에 옵션을 지정해 줄 뿐입니다.
    이제 HTML로 표시할 수 있습니다.
        textView.attributedText = convertToAttributeString(contents: information.infoContents)
    
        private func convertToAttributeString(text: String) -> NSAttributedString? {
            guard let data = text.data(using: .utf8) else { return nil }
            do {
                return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
            } catch {
                return nil
            }
        }
    

    앵커 태그를 탭하면 브라우저에서 열 수 있습니다.



    UITextView의 속성을 설정해야 합니다.
    포인트는 다음과 같습니다.
  • Behavior 의 Selectable 를 true 로 한다
  • Behavior Editable를 false로
  • Data Detectors 의 Link 를 true 로 한다
  • Interaction 의 User Interaction Enabled 를 true 로 한다



  • 이제 표시되는 링크를 탭하면 Safari가 시작되고 대상 URL이 표시됩니다.

    좋은 웹페이지 즐겨찾기