Загрузка файла VCF в браузер iPhone - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь загрузить файл 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);
  }

Приведенный выше код очень хорошо работает при отладке в браузере Chrome с ОС Windows.Также он прекрасно работает на браузере Chrome на телефонах Android.Но это не работает на браузере iPhone (сафари).Вместо загрузки файла VCF он открывает файл VCF в браузере.Но у него есть возможность импортировать его в другие приложения (например, контакты).Но я хочу загрузить файл VCF на iPhone пользователя.

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Начиная с спецификации vCard 4, текст mime type / x-vcard устарел.Только MIME-тип текста / Vcard (без х-) является действительным.Проверьте, не работают ли браузеры iOS из-за типа mime в начале URL-адреса данных.

0 голосов
/ 06 марта 2019

Установка 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;
}

...