Sun_
Sun_
  • 发布:2025-08-12 09:32
  • 更新:2025-09-10 16:26
  • 阅读:84

用snapdom替换html2canvas

分类:uni-app
<script module="capture" lang="renderjs">  
    export default {  
        mounted() {  
            // 动态引入较大类库避免影响页面展示  
            const script = document.createElement('script')  
            // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算  
            // #ifdef APP-PLUS  
            script.src = 'static/js/snapdom.js' // 路径根据实际情况调整  
            // #endif  
            document.head.appendChild(script)  
        },  
        methods: {  
            convertImage(event, ownerInstance) {  
                ownerInstance.callMethod('loading')  
                snapdom.toPng(document.querySelector('.wrapper'), {  
                    scale: 2  
                }).then((res) => {  
                    ownerInstance.callMethod('saveImage', res.src)  
                })  
            }  
        }  
    }  
</script>

res.src是个base64,需要保存本地可以使用image-tools.js的base64ToPath方法再调用uni.saveImageToPhotosAlbum

0 关注 分享

要回复文章请先登录注册

Sun_

Sun_ (作者)

回复 1***@qq.com :
我用来生成表格的,没有图片,有个logo也转成iconfont的形式了。可以试试把图片转成base64,就没有跨域问题了
2025-09-10 16:26
1***@qq.com

1***@qq.com

你好,问下生成海报需要用到背景图,这个图片你是怎么处理的呢?
2025-09-10 15:24