Ссылки на скачивание с TideSDK

Я видел несколько сообщений, приближающихся к решению моей проблемы, но я все еще не в состоянии выполнить свою простую задачу, а именно:

Представьте, что у меня есть окно, которое содержит ссылку на удаленный файл (чаще всего это будет zip-файл). Как я могу структурировать и вызвать функцию, которая обращается к файлу и открывает диалог "Сохранить как", чтобы пользователь мог выбрать, куда сохранить загруженный файл? Было бы неплохо иметь возможность передавать различные переменные из других ссылок в одну и ту же функцию, чтобы выполнить то же самое для других загружаемых файлов.

И да, я совершенно новичок в TideSDK и не совсем эксперт по javascript, если это вызывает очень болезненные шлепки по лбу.

1 ответ

Попробуй это.

Любая ссылка с классом "сохранить как" вызовет диалог "Сохранить как". Файл будет сохранен ПОСЛЕ того, как пользователь выбирает местоположение, дает ему имя и нажимает кнопку Сохранить. Это действительно использует jquery.

<a href="http://wordpress.org/latest.zip" class="save-as">Download WordPress</a>    

    <script>

        $(function(){
            var currentLink;
            $('.save-as').click(function() { 
                var link = $(this).attr('href');
                var filename = link.substring(link.lastIndexOf('/')+1);
                currentLink = link;
                Ti.UI.currentWindow.openSaveAsDialog(saveComplete, {
                    title: 'Save As...',
                    multiple: false,
                    defaultName : filename
                });
                return false;
            }); // End save as.

            var saveComplete = function(results) {
                if(results.length>0) {
                    var downloadFile = results[0];
                    console.log("Download the file");
                    var httpClient = Ti.Network.createHTTPClient();
                    httpClient.open('GET', currentLink);
                    httpClient.receive(function(data) {
                      var file = Ti.Filesystem.getFile(downloadFile);
                      var fileStream = file.open(Ti.Filesystem.MODE_APPEND);
                      fileStream.write(data);
                      fileStream.close();
                    });
                }
            };

        });



    </script>
Другие вопросы по тегам