NodeJS / ReactJS:使用移动浏览器的字符串创建可下载文件

时间:2017-11-10 00:35:22

标签: javascript node.js reactjs mobile mobile-safari

我想在前端创建一个vCard,并使其可以在ReactJs项目中下载(通过单击按钮)。我使用名为vcards-js的NodeJS模块创建一个包含所需vCard(v3.0)内容的字符串。我正在努力的事情是使其可下载(作为.vcf文件)。我试图通过模块react-file-downloadfile-saver来实现这一点,但它们都没有正常工作。最后一个在桌面上运行良好,但无法从移动浏览器提供下载。 Chrome移动设备打开了一个新的标签并永久加载,Safari移动版刚刚在新版本中打开了该字符串,但未将其下载为.vcf文件。

任何线索或经历?我是否需要创建vCard服务器端并提供下载链接?对我来说似乎太迂回了。

如果有帮助,这是我的file-saver方法:

var FileSaver = require('file-saver');
    var blob = new Blob([card.getFormattedString()], {type: "text/x-vCard;charset=iso-8859-1"});
    FileSaver.saveAs(blob, 'card.vcf');

2 个答案:

答案 0 :(得分:0)

我正在查看vcardjs上的文档 https://github.com/enesser/vCards-js

你必须在节点的后端有一条路由来处理这个过程

看起来非常直观 //保存到文件 vCard.saveToFile( './ ERIC-nesser.vcf');

答案 1 :(得分:0)

您可能想尝试使用NodeJS / TS软件包在后端生成它: npm/ez-vcard; GitHub/Maxim-Mazurok/ez-vcard

另外,请参见readmeexample的用法。