我正在尝试创建一个数字卡系统,并尝试将一个vcf文件保存到Android手机中,该手机会提示用户直接将联系人详细信息保存到Android设备中。以下代码在iPhone上可用,但在Android设备上不可用。
<script>
var saveBtn = document.getElementById("save-btn");
saveBtn.addEventListener("click", function() {
var contact = {
name: "<?php echo $row["fullname"]; ?>",
phone: "<?php echo $row["phone"]; ?>",
email: "<?php echo $row["email"]; ?>",
company: "<?php echo $row["company"]; ?>",
socialpro: "<?php echo $row["city"]; ?>"
};
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();
});
</script>
"我迄今为止的工作"
请点击此链接,您可以在iPhone上保存联系人,但在Android(http://mycontacts.unaux.com/displaycontact1.php?employee_id=1&genlist=list&i=4)上不起作用
工作网站
请参见示例网站(https://digicard.ae/oksana),当您单击“保存到联系人”时,它将同时适用于Android和iPhone。
1条答案
按热度按时间iklwldmw1#
您在Android设备上使用此代码时遇到的问题可能与Android处理vCard文件下载和保存的方式有关。
一个可能的解决方案是触发vCard文件的下载,但不是直接打开文件,而是让用户决定将其保存在哪里。可以通过使用link元素上的“download”属性并将其值设置为所需的文件名来实现这一点。
尝试使用以下代码,看看它是否工作:
这应该允许用户下载vCard文件并选择将其保存在Android设备上的位置。