フロントエンドにvCardを作成し、ReactJsプロジェクトでボタンをクリックしてダウンロード可能にします。私はvcards-js
と呼ばれるNodeJSモジュールを使用して、目的のvCard(v3.0)の内容を含む文字列を作成します。私が苦労していることは、.vcfファイルとしてダウンロード可能にすることです。私はモジュールreact-file-download
とfile-saver
でこれを達成しようとしましたが、どれも正しく機能しませんでした。最後はデスクトップでうまくいきましたが、モバイルブラウザからのダウンロードはできませんでした。 Chromeモバイルは新しいタブを開き、永久にロードされました。Safariモバイルは新しいタップで文字列を開いただけですが、.vcfファイルとしてダウンロードしませんでした。NodeJS/ReactJS:モバイルブラウザ用の文字列を含むダウンロード可能なファイルを作成します
手がかりや経験はありますか? vCardサーバー側を作成してダウンロードリンクを提供する必要がありますか?あまりにも私には控え目なようだ。
それが助け場合は、これは私のfile-saver
アプローチです:
var FileSaver = require('file-saver');
var blob = new Blob([card.getFormattedString()], {type: "text/x-vCard;charset=iso-8859-1"});
FileSaver.saveAs(blob, 'card.vcf');
私が理解していることから、saveToFile関数はファイルをローカルファイルシステムに保存します。これは私が達成したいことではありません。私はこのファイルをキャッシュ/ RAMなどに作成し、それをダウンロード可能にしたい(ユーザーの選択によって)。さらに、ファイルシステムに直接書き込むことは、セキュリティ上の問題のためにクライアント側からは機能しません。それにもかかわらず、私はこのアプローチを試みると、 'fs'モジュールがインストールされていない(' fs.writeFileSyncは関数ではありません)というエラーを投げます。 – Mika
ああ私は参照してください:) clartifyingいただきありがとうございます私はこれを見て、あなたを助けることができるかどうかを見て興奮しています〜:D –
私はvcards-jsでvcardデータを生成することができますそれをブラウザに戻して のようにしてください... –