For me, the problem was the accept attribute of the input file.
This does not work in the native Facebook browser on mobile devices:
accept=".jpg,.jpeg,.png,.svg,.tiff,.bmp,.webp,.bpg"
So my solution was to detect if this is FB's own browser, and remove this attribute:
let isFacebookApp = function () { let ua = navigator.userAgent || navigator.vendor || window.opera; return (ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1); }; if (isFacebookApp) { $('#myinput').removeAttr('accept'); }
source share