首页 > 解决方案 > 如何使用 react.js 在浏览器中打开 .vcf 文件而不显示下载消息

问题描述

我试图在创建 .vcf 后在 safari 中打开它,但它显示了下载选项和查看选项,如您在图像中看到的那样。 结果图像 我不想显示下载消息。我想要的是打开 temp.vcf 文件,以便用户可以将其保存到手机。我的代码是

  handleVCF() {
  const FileSaver = require('file-saver');
  var socilaURls = "";
  var telNum = "";
  this.state.socialLinks.forEach((doc)=>{
    if (doc.inCntctForm === true){
    if (doc.mediaTmp === "Text"){
      telNum =  "\nTEL;type=CELL;type=VOICE;type=pref:"+doc.mediaId;
    }
    else{
    var ret = doc.mediaId.replace('https://www.','');
    ret = ret.replace('HTTPS://www.','');
    ret = ret.replace('http://www.','');
    ret = ret.replace('HTTP://www.','');
    socilaURls = socilaURls+"\nX-SOCIALPROFILE;TYPE="+doc.mediaName+";CHARSET=UTF-8:x-user="+ret+":"+doc.mediaUrl;
    }
  }
  })
var userNameTmp = "";
if (this.isNameInclude === "true"){
  userNameTmp = this.state.fullName;
}else{
  userNameTmp = "user"
}
var file = new Blob(
  [
    `BEGIN:VCARD 
    VERSION:4.0
    N:${userNameTmp};;;
    PHOTO;ENCODING=b;TYPE=JPEG:${this.base64Image}
    ${telNum}
    EMAIL;type=INTERNET;type=pref:${this.state.email}
    item1.URL:${this.state.profileUrl}
    item1.X-ABLabel:My Dappy profile
    ${socilaURls}
    NOTE;CHARSET=UTF-8:Hard press on the profile picture above to save this contact to your phone!
    END:VCARD`
  ],
  { type: "text/vcard;charset=utf-8" }
);
FileSaver.saveAs(file,"temp.vcf");
window.open(file);

标签: iosreactjsbrowservcf-vcard

解决方案


推荐阅读