在iPhone浏览器上下载VCF文件

Sav*_*kar 3 javascript iphone vcf-vcard mobile-safari

我正在尝试在我的移动网络应用程序中下载 vcf 文件,而不需要访问服务器。

 function downloadVcf(filename, data) {
    var element = document.createElement('a');
    element.setAttribute('href', 'data:text/x-vcard;charset=utf-8,' + encodeURIComponent(data));
    element.setAttribute('download', filename);

    element.style.display = 'none';
    document.body.appendChild(element);

    element.click();

    document.body.removeChild(element);
  }
Run Code Online (Sandbox Code Playgroud)

上面的代码在 Windows 操作系统的 Chrome 浏览器上调试时效果很好。而且它在 Android 手机上的 Chrome 浏览器上运行得非常好。但它不适用于 iPhone 浏览器(safari)。它不是下载 vcf 文件,而是在浏览器中打开 VCF 文件。但它确实可以让用户选择将其导入其他应用程序(例如联系人)。但我想要的是在用户的iPhone中下载VCF文件。

请帮忙。

Joh*_*rty 5

设置document.location.href为数据 URI 的值应该可以:

function downloadVcf(data) {

    // build data url
    var url = 'data:text/x-vcard;charset=utf-8,' + encodeURIComponent(data);

    // ask the browser to download it
    document.location.href = url;
}

Run Code Online (Sandbox Code Playgroud)