我在JavaScript中生成了XML字符串,我需要将其下载为文件。我尝试了here中提供的两个答案。
两个答案在MacOS Safari,iOS Safari和Raspbian Chromium上都可以很好地工作,但是当我尝试在iPad iOS 12.1.4上的PWA中下载时,它什么也没做。控制台也没有错误。
如果我尝试在新标签页中下载,它只会显示白屏,什么也没发生。
编辑: 我已经完成了一些有关iOS 13的测试。
它似乎可以在iOS 13上运行,但即使是指定文件名的html5 attrbute“下载”也可以。
虽然我遇到了一个可能的错误;
使用href进行下载会弹出iOS共享菜单,但不允许您关闭它。为了再次使用该应用,需要将其关闭。
使用window.open()可以关闭共享菜单,但不支持文件名。还有可能的错误吗?
无论如何,当我将target ='_ blank'添加到href中时,它仍然不能让您提供关闭共享菜单的选项。
答案 0 :(得分:0)
如果无法解决上面EDIT中提到的错误,我来到了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);
}