В моем vue
есть функция, которую я использую для загрузки файлов из облачного хранилища Firebase. Функции выглядят так:
forceFileDownload(response, issue, index){
const increment = firebase.firestore.FieldValue.increment(1)
db.collection('issues').doc(this.ids[index]).update({
downloads: increment
})
var extension = mimeTypes.extension(response.headers['map']['content-type'][0]);
const url = window.URL.createObjectURL(new Blob([response.data]))
const link = document.createElement('a')
link.href = url
link.setAttribute('download', issue['name']+"."+extension) //or any other extension
document.body.appendChild(link)
link.click()
},
downloadWithVueResource(issue, index) {
this.$http({
method: 'get',
url: issue['path'],
responseType: 'arraybuffer'
})
.then(response => {
this.forceFileDownload(response, issue, index)
})
.catch(() => console.log('error occured'))
},
Как вы можете видеть выше, я использую vue-resource
для загрузки файла. Причина, по которой я делаю это вместо привязки ссылки к тегу привязки, заключается в том, что файл динамически отображается с использованием v-for
следующим образом:
<div v-for="(issue, index) in issues" :key="index">
<button @click="downloadWithVueResource(issue, index)">Download</button>
</div>
Это прекрасно работает на моем Ubuntu chrome и на сафари на моем телефоне. Но это не работает в chrome на моем телефоне. Я не понимаю, почему это происходит. Любая помощь будет оценена. Спасибо