HtmlText:SwiftUI中展示富文本HTML内容的视图





标题

项目名称:HtmlText

项目概述

HtmlText是一个开源的SwiftUI库,它允许开发者在SwiftUI应用中展示富文本HTML内容。这个库的特点包括自适应视图大小、支持用户点击链接(包括http/https/tel/mailto协议),以及使用CSS构造器来自定义HTML内容的展示。

功能特点

  • 自适应大小:视图大小根据内容高度自动适配,方便作为应用内容的一部分使用。

  • 点击链接:用户可以点击文本中的链接,支持http、https、tel、mailto等协议。

  • CSS定制:提供CSS构造器,允许开发者自定义HTML内容的样式。

安装方法

通过Swift Package Manager安装:

https://github.com/Jnis/HtmlText.git

使用方法

1) 手动控制正文、CSS和链接点击事件。

import HtmlText

HtmlText(body: "<p>text1</p><p>text2</p>",
         css: .init(fontFaces: [],
                    css: "* {color:#FF00FF}"),
         linkTap: { url in
    // 处理链接点击
})

2) 使用默认的链接点击处理器和CSS构造器。

import HtmlText

// 创建一个方便的包装器
extension HtmlText {
    init(body: String, font: FrontNames, size: CGFloat, lineHeight: CGFloat, textColor: Color) {
        self.init(body: body,
                  css: .init(constructor: CSS.Constructor()
                        .text(fontName: font.fontName,
                              fileName: font.fileName,
                              size: size,
                              lineHeight: lineHeight,
                              letterSpacing: 0,
                              textIndent: 10,
                              color: textColor)
                        .link(color: .red, underlined: false)
                        .paragraph(padding: .init(top: 10, left: 0, bottom: 0, right: 0))
                        .list(padding: .init(top: 10, left: 24, bottom: 10, right: 0))
                  ),
                  linkTap: HtmlText.defaultLinkTapHandler(httpLinkTap: .openSFSafariModal))
    }
}

HtmlText(body: Constants.demoHtml,
         font: .bold,
         size: 12,
         lineHeight: 20,
         textColor: Color.gray)

 

或许喜欢

Steps:集成HealthKit步数追踪应用

Steps是一个开源的SwiftUI步数追踪应用,集成HealthKit,提供本地通知和图表展示,遵循MVVM架构。

最近更新 2024-12-11

PartialSheet:自定义SwiftUI部分模态弹窗

PartialSheet是一个基于SwiftUI的自定义组件,用于展示基于内容大小的部分模态弹窗,支持滑动、自定义颜色和键盘兼容性,适用于iOS和MacOS。

最近更新 2024-12-31

VerticalSplit:垂直堆叠两个视图的容器,且可以上下调节视图大小

VerticalSplit SwiftUI容器的灵感来自于Amie iOS应用中的分屏实现。允许开发者添加自定义内容,在一个屏幕内上下显示不同的视图内容并可以调节视图大小。用于创建垂直分屏视图,支持拖动调整分割比例、迷你覆盖层显示和自定义配件按钮。

最近更新 2024-12-11

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1