Para una aplicación web que estoy creando, necesito integrar capacidades para compartir archivos. Esto ahora finalmente es posible desde el lanzamiento de IOS 15. Sin embargo, solo conseguí que funcionara parcialmente. Cuando comparto el archivo con correo electrónico o mensajes, funciona bien. Pero cuando trato de compartir con WhatsApp, Signal o Threema, solo compartirá el título, no el archivo real. No veo ningún error en la consola ni ninguna solicitud de red fallida.
const audioResponse = await fetch(sound.downloadUrl); const fileBuffer = await audioResponse.arrayBuffer(); const fileArray = [ new File([fileBuffer], name + '.mp3', { type: 'audio/mpeg', lastModified: Date.now(), }), ]; if ( window.navigator.canShare && window.navigator.canShare({ files: fileArray }) ) { navigator .share({ files: fileArray, title: name, text: 'File share test', }) .then(() => { console.log('Success!'); }) .catch(console.error); }He encontrado la solución. El problema era la propiedad del título en navigator.share Esto llevó a ciertas aplicaciones en iOS a creer que quería compartir el texto y no el archivo.
Bastante frustrante ya que funciona bien en otros navegadores, pero al menos funciona ahora.
Los siguientes trabajos:
navigator .share({ files: fileArray, })