Feature: Kamera-Fotos im Tagebuch in Mediathek speichern anbieten
Nach capture-Aufnahmen erscheint Button 'Zum Fotoalbum hinzufügen'. Nutzt Web Share API (iOS/Android) mit <a download> als Fallback. UI.saveToAlbum() als wiederverwendbare Utility in ui.js. SW by-v200, APP_VER 168.
This commit is contained in:
parent
8fdca1f211
commit
e97bd744e9
4 changed files with 64 additions and 3 deletions
|
|
@ -307,6 +307,41 @@ const UI = (() => {
|
|||
if (parseFloat(tip.style.left) > maxL) tip.style.left = maxL + 'px';
|
||||
});
|
||||
|
||||
// ----------------------------------------------------------
|
||||
// SAVE TO ALBUM — Foto/Video nach Kamera-Aufnahme in Mediathek
|
||||
// anbieten. Nur bei capture-Aufnahmen aufrufen (nicht Galerie).
|
||||
// Nutzt Web Share API wenn verfügbar, sonst <a download> Fallback.
|
||||
// ----------------------------------------------------------
|
||||
async function saveToAlbum(file) {
|
||||
if (!file) return;
|
||||
|
||||
// Web Share API mit Datei-Support (iOS Safari 15+, Chrome Android)
|
||||
if (navigator.canShare && navigator.canShare({ files: [file] })) {
|
||||
try {
|
||||
await navigator.share({
|
||||
files: [file],
|
||||
title: file.name || 'Foto',
|
||||
});
|
||||
} catch (err) {
|
||||
// AbortError = User hat Sheet geschlossen — kein Fehler anzeigen
|
||||
if (err?.name !== 'AbortError') {
|
||||
console.warn('saveToAlbum share error:', err);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Fallback: direkter Download per <a download>
|
||||
const url = URL.createObjectURL(file);
|
||||
const a = document.createElement('a');
|
||||
a.href = url;
|
||||
a.download = file.name || ('foto_' + Date.now() + (file.type === 'video/mp4' ? '.mp4' : '.jpg'));
|
||||
a.style.display = 'none';
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
setTimeout(() => { URL.revokeObjectURL(url); a.remove(); }, 2000);
|
||||
}
|
||||
|
||||
// Öffentliche API
|
||||
return {
|
||||
toast, modal,
|
||||
|
|
@ -316,6 +351,7 @@ const UI = (() => {
|
|||
setupPhotoPreview, scrollTop, skeleton,
|
||||
icon: _svgIcon,
|
||||
escape, help,
|
||||
saveToAlbum,
|
||||
};
|
||||
|
||||
})();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue