微信小程序怎么显示SVG?

1.问题:

后台返回的数据是 svg 图片的链接,形如:'http://abc.com/a.svg'。现在要渲染在小程序页面,小程序无SVG组件。

2.尝试直接在image组件的src放链接,不显示。

3.或者小程序中SVG代码怎么转成图片可用的base64?
PC倒是可以用 src="data:image/svg+xml;base64," + window.btoa(unescape(encodeURIComponent(要转换的svg代码))),但是小程序当中怎么转呢?

求问大神!!!

阅读 8.6k
2 个回答

搞定了,一开始想复杂了,原来小程序api有可以转成base64的,代码如下

Page({
    data: {
        svgSrc: ''
    },

    onLoad() {
        const fileManager = wx.getFileSystemManager();
        wx.downloadFile({
            url:
                'https://cdn.thickinto.com/rdo/mall/ticket/673f1b5d1c9b36966eb4a7fbf8d19971/just.svg',
            success: ({ tempFilePath }) => {
                let fileData = fileManager.readFileSync(tempFilePath, 'base64');
                this.setData({
                    svgSrc: `data:image/svg+xml;base64,${fileData}`
                });
            }
        });
    }
});

直接用image src放svg就可以啦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题