uni-app 中引入 mathjax

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app 中引入 mathjax

如何在uni-app中引入MathJax?

在uni-app项目中引入MathJax的具体步骤如下:

  1. 首先,在项目中安装MathJax库。可以通过npm或直接下载并放置在项目的static目录下。

  2. 在需要使用MathJax的页面或组件中引入MathJax库。例如,可以在<script>标签中添加以下代码:

    <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
    
  3. 使用MathJax渲染数学公式。例如,可以在Markdown文本中使用TeX语法编写数学公式,MathJax会自动将其渲染为美观的数学公式。

信息类型 描述
开发环境 uni-app
版本号 未提及
项目创建方式 未提及

15 回复

插件市场搜 https://ext.dcloud.net.cn/search?q=公式
使用图片
h5端这些web库都还可以使用,app端,也可以通过renderjs来使用这些web库,参考:https://uniapp.dcloud.io/frame?id=renderjs


顶一下,同样的需求

我觉得 uni-app 引入第三方js 太不方便了 限制了一些开发

嗯,束手束脚的感觉,希望能尽快完善相关功能吧

大家有解决方案吗?app要用到公式

有解决方法了吗

有解决办法了吗 楼主

请问楼主 解决问题了吗?

请问有解决办法了吗各位

可以通过renderjs引入,但页面闪动比较明显,实现效果并不是很友好= =

使用katex代替mathjax,渲染速度快不少

回复 chenli: 大佬 有相关案例吗?

请问楼主解决了吗?

uni-app 中引入 MathJax 以实现数学公式的渲染,可以通过使用 web-view 组件来嵌入一个包含 MathJax 的网页。由于 uni-app 主要面向移动端和小程序,原生支持复杂的数学公式渲染并不直接,但 web-view 可以加载外部网页,这样我们就可以利用 MathJax 的网页版本来实现这一功能。

以下是一个基本的实现步骤和代码示例:

  1. 准备MathJax网页: 首先,你需要准备一个包含 MathJax 的HTML文件。例如,创建一个名为mathjax.html的文件,内容如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script type="text/javascript" async
            src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML">
        </script>
        <title>MathJax Example</title>
    </head>
    <body>
        <div id="math-container"></div>
        <script>
            // This function will be called from uni-app to render math
            window.renderMath = function(latex) {
                document.getElementById('math-container').innerHTML = '\\[' + latex + '\\]';
                MathJax.Hub.Queue(["Typeset", MathJax.Hub, "math-container"]);
            }
        </script>
    </body>
    </html>
    
  2. 在uni-app中使用web-view: 然后,在你的 uni-app 项目中,使用 web-view 组件加载这个HTML文件。你可以在页面的 template 部分添加如下代码:

    <template>
        <view>
            <button @click="renderMathInWebView('E = mc^2')">Render Math</button>
            <web-view :src="webViewSrc" style="width: 100%; height: 500px;"></web-view>
        </view>
    </template>
    
    <script>
    export default {
        data() {
            return {
                webViewSrc: ''
            };
        },
        mounted() {
            this.webViewSrc = `${uni.env.USER_DATA_PATH}/html/mathjax.html`; // 假设mathjax.html已放在该路径
        },
        methods: {
            renderMathInWebView(latex) {
                plus.webview.evalJS(this.webViewSrc, `renderMath('${latex}')`);
            }
        }
    };
    </script>
    

    注意:这里的路径 ${uni.env.USER_DATA_PATH}/html/mathjax.html 需要根据你的实际情况调整,你可能需要将 mathjax.html 文件放入项目的某个目录,并确保该路径在 web-view 中可访问。

  3. 部署和测试: 确保你的 mathjax.html 文件正确部署,并且 web-view 能够加载它。点击按钮后,web-view 应该能够显示渲染后的数学公式。

这种方法利用了 web-view 的强大功能,使得在 uni-app 中实现复杂的数学公式渲染成为可能。

回到顶部