电容器Filesharer插件因大型Base64而失败

时间:2019-06-11 17:41:05

标签: ionic-framework ionic4 capacitor

我正在尝试通过Vue在我的Capacitor项目构建中实现https://jsfiddle.net/3f5oLjxu/1/

这就是我所拥有的视图:

<template>
    <div class="ion-page">
        <ion-content padding>
            <img id="selfie" src="data:image/png;base64,iVBORw0...uQmCC">
            <ion-button @click="shareNow()">Share</ion-button>
        </ion-content>
    </div>
</template>
<script>
import {
    Plugins,
    registerWebPlugin
} from "@capacitor/core";
import {
    FileSharer
} from '@byteowls/capacitor-filesharer';
const {
    Share
} = Plugins;
registerWebPlugin(FileSharer);
export default {
    methods: {
        shareNow() {
            var self = this;
            var img = document.getElementById('selfie').src
            Plugins.FileSharer.share({
                filename: Math.random() + "_selfie.png",
                base64Data: img.replace('data:image/png;base64', '').toString(),
                contentType: "image/png",
            }).then(() => {
                // alert('DONE');
            }).catch(error => {
                console.error(error);
                console.error("File sharing failed:", error.message);
            });
        },
    }
};
</script>

一切正常,除了我无法实际分享。当我尝试共享一个较大的图像(只有几KB)时,它不起作用。

当图像较小(几KB)时,它可以工作,但是我想共享一张正在制作的照片,并将该照片添加为Base64字符串。我认为它会因为Base64字符串很大而失败,但是据我所知,这是将Filesharer插件与Base64字符串一起使用的唯一方法。

0 个答案:

没有答案