Android自定义WebView加载本地模板及传参

2023-12-30 08:37:13 浏览数 (2)

模板引擎

代码语言:javascript复制
implementation 'com.x5dev:chunk-templates:3.5.0'

添加引用

代码语言:javascript复制
import com.x5.template.Chunk
import com.x5.template.Theme
import com.x5.template.providers.AndroidTemplates

模板文件要放在src/main/assets/themes文件夹下

假如文件为katex.chtml

使用方法

代码语言:javascript复制
private fun getChunk(): Chunk {
    val loader = AndroidTemplates(context)
    return Theme(loader).makeChunk("katex")
}

val chunk: Chunk = getChunk()
chunk.set("formula", mText)

chunk.toString()

模板中这样取值

代码语言:javascript复制
{$formula}

这样chunk.toString()获取到的就是把变量已经塞进模板后的字符串了。

页面中引用JS/CSS

src/main/assets/katex文件夹下的文件katex.min.css

在页面中可以通过以下方式引用:

代码语言:javascript复制
<link rel="stylesheet" type="text/css" href="file:///android_asset/katex/katex.min.css">

Webview加载网页文本

代码语言:javascript复制
loadDataWithBaseURL(null, htmlText, "text/html", "utf-8", "about:blank")

高度和内部高度自适应

直接添加android:layout_height="wrap_content"即可。

本身就支持不用通过网页加载完事件再把高度传出来。

0 人点赞