#javascript
#javascript
Вопрос:
Я пытаюсь заставить это работать, я хочу иметь возможность загружать файл с веб-сайта, я использую вызываемый пакет NPM, file-saver
а также попробовал решение в одном из ответов здесь, да, это работает, но проблема в том, что он не работает в Chrome iOS, по какой-то причине кто-нибудь нашелчто может быть решением этой проблемы? Неужели Chrome настолько строг, что не позволяет вам ничего загружать?
const saveLocalStorage = () => {
// Grap the whole ls object and save
const ls = JSON.stringify(localStorage);
// Using file Saver NPM
//FileSaver.saveAs(new Blob([ls]), 'Plan.Online', { autoBom: true });
const downloadBlob = (fileName: string, blob: any) => {
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.target = '_blank';
link.download = fileName;
document.body.appendChild(link);
link.click();
};
const blob = new Blob([ls], {
type: 'text',
});
downloadBlob('Data.txt', blob);
};
Комментарии:
1. iOS chrome? нет. В iOS chrome представляет собой тонкую оболочку вокруг встроенного браузера Safari. Многие вещи в iOS Chrome заблокированы. (например, «Добавить на главный экран») Вопрос. Работает ли программа в iOS Safari?
2. @zipzit это работает как шарм в Safari
3. Совсем не ясно, чего вы пытаетесь достичь. Когда я пишу прогрессивные веб-приложения, я должен сообщить своим пользователям, что они должны использовать собственный браузер ОС. Android = Chrome, iOS = Safari. Точка. Заменителей нет. Apple явно не хочет универсальной функциональности кода браузера.
Ответ №1:
Если ваше приложение работает в iOS Safari, но не в браузере Chrome iOS, проблема может быть в том, как Apple настроила Chrome.
Из этой ссылки
Google Chrome теперь доступен для iPhone и iPad, но прежде чем вы слишком обрадуетесь, вам нужно понять, что это вовсе не Chrome. Это Safari от Apple с интерфейсом «chrome». Фактический браузер, рендеринг и движок javascript — это 100% Apple Safari.
Причина проста. Apple хочет контролировать и заставлять людей создавать собственные приложения и, таким образом, ограничивает производительность веб-приложений в сторонних приложениях. … Это чисто антиконкурентное поведение, которое ограничивает выбор и заставляет людей создавать собственные приложения.
Когда я пишу Progressive Web Apps (PWA), я должен сообщить своим пользователям, что они должны использовать собственный браузер ОС. Android = Chrome, iOS = Safari. Точка. Заменителей нет. Apple явно не хочет универсальной функциональности кода браузера.
Примечание: я знаю, что ссылка выше довольно старая. Но, насколько я знаю, суть фактов остается в силе. Примечание: я подхожу к этому с точки зрения разработки прогрессивных веб-приложений. Единственная функция, на которую я действительно полагаюсь, — это возможность «Сохранить ссылку на домашнюю страницу». И это просто недоступно в Chrome на iOS, даже сейчас. Не уверен, что у вас точно такой же вариант использования.
Ответ №2:
я обнаружил, что это обсуждение может быть связано! инженер Chrome говорит: «Ах, это потому, что Chrome на iOS еще не внедрил новые методы делегирования WKDownload, но в настоящее время над этим ведется работа (см. crbug.com/1252380 )»
Комментарии:
1. Как я понял, это сделано специально для безопасности, а не для ошибки.
2. @Richardson я на самом деле могу открыть файл PDF ext, но не CSV ext, используя file-saver, есть ли у вас какие-либо ссылки, поскольку я сказал, что это связано с безопасностью?
3. был похожий на мой вопрос, в котором вывод был сделан по соображениям безопасности, и это имеет смысл. особенно, когда дело доходит до ios.