Javascript 如何在iOS上下载PWA中本地生成的文本?
我用JavaScript生成了一个XML字符串,需要将其作为文件下载。我尝试了中提供的两个答案 这两个答案在MacOS Safari、iOS Safari和Raspbian Chromium上都能很好地工作,但当我尝试在iPad iOS 12.1.4上的PWA中下载时,它什么也没做。控制台中也没有错误 如果我尝试在一个新的标签中下载,它只会显示一个白色的屏幕,什么也不会发生 编辑: 我做了一些涉及iOS 13的测试 它似乎在iOS 13上工作,但即使是html5属性“下载”来指定文件名也能工作 但是我遇到了一个可能的错误 使用href下载会弹出iOS共享菜单,但不允许您关闭它。要再次使用该应用程序,需要将其关闭 使用window.open()可以关闭共享菜单,但不支持文件名。还有一个可能的bug 无论如何,当我将target=''u blank'添加到href时,它仍然不允许您提供关闭共享菜单的选项 编辑2 我想到了iOS 13独立PWA的解决方案,以防上面编辑中提到的错误无法修复:Javascript 如何在iOS上下载PWA中本地生成的文本?,javascript,ios,safari,progressive-web-apps,Javascript,Ios,Safari,Progressive Web Apps,我用JavaScript生成了一个XML字符串,需要将其作为文件下载。我尝试了中提供的两个答案 这两个答案在MacOS Safari、iOS Safari和Raspbian Chromium上都能很好地工作,但当我尝试在iPad iOS 12.1.4上的PWA中下载时,它什么也没做。控制台中也没有错误 如果我尝试在一个新的标签中下载,它只会显示一个白色的屏幕,什么也不会发生 编辑: 我做了一些涉及iOS 13的测试 它似乎在iOS 13上工作,但即使是html5属性“下载”来指定文件名也能工
function download(content)
{
var file = new Blob([content],
{
type: 'text/xml;charset=UTF-8'
});
var reader = new FileReader();
reader.onload = function()
{
var popup = window.open();
var link = document.createElement('a');
link.setAttribute('href', reader.result);
link.setAttribute('download', 'filename.xml');
popup.document.body.appendChild(link);
link.click();
}
reader.readAsDataURL(file);
}
function download(content)
{
var file = new Blob([content],
{
type: 'text/xml;charset=UTF-8'
});
var reader = new FileReader();
reader.onload = function()
{
var popup = window.open();
var link = document.createElement('a');
link.setAttribute('href', reader.result);
link.setAttribute('download', 'filename.xml');
popup.document.body.appendChild(link);
link.click();
}
reader.readAsDataURL(file);
}
我想到了iOS 13独立PWA的解决方案,以防上面编辑中提到的错误无法修复:
function download(content)
{
var file = new Blob([content],
{
type: 'text/xml;charset=UTF-8'
});
var reader = new FileReader();
reader.onload = function()
{
var popup = window.open();
var link = document.createElement('a');
link.setAttribute('href', reader.result);
link.setAttribute('download', 'filename.xml');
popup.document.body.appendChild(link);
link.click();
}
reader.readAsDataURL(file);
}
function download(content)
{
var file = new Blob([content],
{
type: 'text/xml;charset=UTF-8'
});
var reader = new FileReader();
reader.onload = function()
{
var popup = window.open();
var link = document.createElement('a');
link.setAttribute('href', reader.result);
link.setAttribute('download', 'filename.xml');
popup.document.body.appendChild(link);
link.click();
}
reader.readAsDataURL(file);
}