iphoneにCSVファイルを保存する方法について
html+javascriptでブラウザ側(indexeddb)に保存出来るメモ帳を作成しています。
●やりたいこと
入力データをブラウザ(indexeddb)に保存→保存データをCSVデータに変換し、端末側にダウンロードしたい
●質問内容
以下のexportcsv関数で、PCではCSVファイルはダウンロードフォルダに保存されるのですが、iphoneではブラウザに表示されるだけで、CSVファイルが保存されません。
自分なりに調べたところ、iphoneではiphone上の指定する場所に保存出来ないとありました。
ただし、保存場所に『icloud Drive』を指定すれば一旦『icloud Drive』に保存し、その後iphoneに保存出来る様です。
つきましては、
1.保存場所を『icloud Drive』に指定するにはどうすれば良いのでしょうか?
<a id="downloader" href="#" onclick="exportcsv()">CSVエクスポート</a> 中略 <script> function exportcsv(event) { var result = document.getElementById("result3"); var transaction = db.transaction(["copymystore"], "readwrite"); var store = transaction.objectStore("copymystore"); var request = store.getAll(); request.onsuccess = function arryda(event) { if(event.target.result == null) { return; } var cursor = event.target.result; var obj = Object.entries(cursor).map(([primaryKey, {timeStamp, copymyvalue, copymyvalue2, copymyvalue3, price, date}]) => ([primaryKey, timeStamp, copymyvalue, copymyvalue2, copymyvalue3, price, date])); var addobj = ['primaryKey', 'timeStamp', 'copymyvalue', 'copymyvalue2', 'copymyvalue3', 'price', 'date']; obj.unshift(addobj); // BOM の用意(文字化け対策 var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); // CSV データの用意 var csv_data = obj.map(function(l){return l.join(',')}).join('\r\n'); var blob = new Blob([bom, csv_data], { type: 'text/csv;charset=utf-8' }); var url = (window.URL || window.webkitURL).createObjectURL(blob); //現在時刻を取得 function getTime() { var date = new Date(); //年・月・日を取得する var year = date.getFullYear(); var month = zeroPadding(date.getMonth() + 1); var day = zeroPadding(date.getDate()); //時・分・秒を取得する var hour = zeroPadding(date.getHours()); var minute = zeroPadding(date.getMinutes()); var second = zeroPadding(date.getSeconds()); //"yyyy-MM-dd_hhiiss"の形式に整形して返す var str = year + "-" + month + "-" + day + "_" + hour + minute + second; return str; } //頭に0を追加 function zeroPadding(str) { if (str < 10) { str = "0" + str; } return str; } var a = document.getElementById('downloader'); var nowDate = getTime(); var fileName = "file_" + nowDate + ".csv"; //file_yyyy-MM-dd_hhiiss.csvというファイル名 a.download = fileName; a.href = url; } } </script>