【问题标题】:Downloading VCF file on iPhone browser在 iPhone 浏览器上下载 VCF 文件
【发布时间】:2019-07-19 03:56:29
【问题描述】:

我正在尝试在我的移动网络应用程序中下载一个 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);
  }

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

请帮忙。

【问题讨论】:

    标签: javascript iphone mobile-safari vcf-vcard


    【解决方案1】:

    将 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;
    }
    
    

    【讨论】:

    • 我会在 iPhone 浏览器上试试这个方法,然后通知结果。 :)
    • 您好 John,此解决方案不适用于 iPhone 浏览器 safari。 :(
    • 在安卓中工作。在 iOS 中,我可以下载该文件,但它没有任何扩展名。所以,我无法执行导入:/
    【解决方案2】:

    自 vCard 规范 4 起,mime 类型 text/x-vcard 已被弃用。只有 mime 类型 text/vcard(不带 x-)有效。检查 iOS 浏览器是否因数据 url 开头的 mime 类型而失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      相关资源
      最近更新 更多