Я пытаюсь реализовать Capacitor Filesharer в моей сборке проекта Capacitor с использованием Vue.
Это то, что я имею в виду:
<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>
Это все работает, за исключением того, что я не могу сделать реальную долю. Когда я пытаюсь поделиться большим изображением, чем несколько КБ, это не работает.
Когда изображение маленькое (несколько КБ), оно работает, но я хочу поделиться фотографией, которую я делаю, и добавить эту фотографию в виде строки Base64. Я думаю, что он потерпит неудачу из-за большой строки Base64, но, насколько я могу судить, это единственный способ использовать плагин Filesharer со строкой Base64.