cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyimpan vCards-js secara automatik ke kenalan iPhone dan Android

Saya cuba menyimpan vCard pada telefon pengguna (IOS dan ANDROID). Saya menggunakan kod ini

window.addEventListener("load", function () {
  // Contact Information
  var contact = {
    ...
  };
  // create a vcard file
  var vcard = "BEGIN:VCARD\nVERSION:3.0\n"
    + "N:" + contact.name + ";;;\n"
    + "FN:" + contact.name + "\n"
    + "TEL;CELL:" + contact.phone + "\n"
    + "TEL;CELL:" + contact.mobile + "\n"
    + "EMAIL;HOME:" + contact.email + "\n"
    + "ADR;HOME:" + contact.address + "\n"
    + "ORG;WORK:" + contact.organization + "\n"
    + "TITLE:" + contact.title + "\n"
    + "URL:" + contact.url + "\n"
    + "NOTE:" + contact.notes + "\n"
    + "END:VCARD";  
  
  // var vcard = "BEGIN:VCARD\nVERSION:4.0\nFN:" + contact.name + "\nTEL;TYPE=work,voice:" + contact.phone + "\nEMAIL:" + contact.email + "\nEND:VCARD";
  var blob = new Blob([vcard], { type: "text/vcard" });
  var url = URL.createObjectURL(blob);
  
  const newLink = document.createElement('a');
  newLink.download = contact.name + ".vcf";
  newLink.textContent = contact.name;
  newLink.href = url;
  
  newLink.click();

  // window.close();
});

Ia berfungsi, tetapi kod ini pada telefon Android mula-mula memuat turun vkad, kemudian pengguna perlu mengklik muat turun untuk mengimport. Apa yang saya mahu ialah apabila pengguna datang ke halaman ini, kenalan saya disimpan secara automatik pada Android tanpa memuat turun sebarang fail. (Pada IOS ini tidak menjadi masalah kerana apabila pengguna melawat tapak web ini, mereka dialihkan secara automatik untuk mengimport kenalan)

注意: 我之前已经播过一个带有二维码的示例。当我扫描二维码时,他们将我重定向到导入联系人,我需要做的只是在手机上单击 save

Saya mahu perkara yang sama seperti https://www.qr-code-generator.com apabila mengklik tab vCard. Tetapi apabila halaman dimuat semula, kod QR tidak diimbas

P粉722409996P粉722409996303 hari yang lalu489

membalas semua(1)saya akan balas

  • P粉116631591

    P粉1166315912024-03-27 09:15:37

    Anda perlu menambah kaedah web share Mengikut kod anda, anda boleh menambah navigator.share() Jika syaratnya seperti menyemak sama ada API ini disokong oleh penyemak imbas, pautan muat turun lain akan menjadi secara automatik dimuat turun.

    Suka kod yang dikemas kini di bawah:-

    window.addEventListener("load", function () {
      // Contact Information
      var contact = {
        ...
      };
      // create a vcard file
      var vcard = "BEGIN:VCARD\nVERSION:3.0\n"
        + "N:" + contact.name + ";;;\n"
        + "FN:" + contact.name + "\n"
        + "TEL;CELL:" + contact.phone + "\n"
        + "TEL;CELL:" + contact.mobile + "\n"
        + "EMAIL;HOME:" + contact.email + "\n"
        + "ADR;HOME:" + contact.address + "\n"
        + "ORG;WORK:" + contact.organization + "\n"
        + "TITLE:" + contact.title + "\n"
        + "URL:" + contact.url + "\n"
        + "NOTE:" + contact.notes + "\n"
        + "END:VCARD";  
      
      // var vcard = "BEGIN:VCARD\nVERSION:4.0\nFN:" + contact.name + "\nTEL;TYPE=work,voice:" + contact.phone + "\nEMAIL:" + contact.email + "\nEND:VCARD";
      var blob = new Blob([vcard], { type: "text/vcard" });
      var url = URL.createObjectURL(blob);
      
      if (navigator.share) {
      
        navigator.share({
        
          title: 'New Contacts',
          text: 'Save contacts',
          files: [new File([blob], 'newcontact.vcf', { type: 'text/vcard' })],
        }).then(() => { });
    
      } else {
          const newLink = document.createElement('a');
          newLink.download = contact.name + ".vcf";
          newLink.textContent = contact.name;
          newLink.href = url;
    
          newLink.click();
    
          // window.close();
      
      }
    });

    balas
    0
  • Batalbalas