2016-03-12 2 views
1

Это не мое первое гибридное приложение (я опубликовал приложения как в Google Play Store, так и в Apple Store). Моя целевая платформа - Android. Я не уверен, какие версии будут поддерживаться, я буду определять, что позже, если я решит опубликовать эту идею вообще. Я использую Phonegap Build.Скачать атрибут, не работающий в приложении Phonegap

У меня возникли проблемы с получением атрибута HTML Download элемента A для работы. Вот что у меня есть:

<a download href="http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2014/4/11/1397210130748/Spring-Lamb.-Image-shot-2-011.jpg">Lamb</a> 

Если я удалю атрибут загрузки, изображение откроется в моем приложении для мобильного телефона (Android). С этим ничего не происходит. Работает нормально, по крайней мере, в Chrome. Есть идеи?

+1

В вашем посте недостаточно информации, чтобы предлагать какие-либо решения. Пожалуйста, ** ответьте на следующие вопросы в своем сообщении **. Поскольку это ваш первый пост на эту тему. Это ваше первое гибридное приложение? Какова ваша целевая платформа и их целевые версии: Android 4,5,6? iOS 7,8,9? Используете ли вы [CLI, SDK или Build] (https://github.com/jessemonroy650/top-phonegap-mistakes/blob/master/new-to-Phonegap.md#001)? Пожалуйста, не принимайте ответ, пожалуйста, прочитайте ссылку. Как только вы ответите на вопрос, ответьте в комментариях, поэтому я знаю, что вы добавили эту информацию. – JesseMonroy650

+0

Привет, Джесси, спасибо за ваш ответ. Нет, это не мое первое гибридное приложение (я опубликовал приложения как в Google Play Store, так и в Apple Store). Целевая платформа - Android. Честно говоря, я не уверен, какие версии будут поддерживаться, я буду определять это позже, если я решит опубликовать эту идею вообще. Я использую Phonegap Build. – Robbert

+1

phonegap webview не может скачивать файлы, вы должны использовать плагин для передачи файлов – jcesarmobile

ответ

1

@Robbert,
Отвечаю много Кордова/PhoneGap вопросы, как много добровольцев на этом форуме. Таким образом, вы можете найти этот FAQ полезным.

С этого FAQ, вы хотите быть в курсе # 5 - PhoneGap не webserver or a webbrowser. Это обычная ошибка. Верно, что вы можете использовать свой веб-браузер для проверки своих страниц, но не обманывайтесь, думая, что все веб-браузеры одинаковы. Поскольку Поль Ирландии любит напомнить, что «Не все веб-браузеры равны». Его статья Webkit for Developers хорошо читается.

цитирую

Различные порты могут иметь разные фокусы. Концентрация порта Mac разделена между браузером и ОС и вводит привязки Obj-C и C++ для встраивания рендеринга в собственные приложения. Хром сосредоточен исключительно на браузере. QtWebKit предлагает своим портам приложения для использования в качестве среды выполнения или рендеринга в своей кросс-платформенной архитектуре приложений с графическим интерфейсом.

Чтобы быть ясным, Phonegap использует библиотеку под названием webview (с Android и аналогичными на других платформах). Нынешнее воплощение основано на «webkit» от Chromium, но ранее оно было основано на старой версии Android «webview», которая была в течение многих лет. Однако даже с атрибут, который вы ищете, может быть недоступен.

Лучшим было место для начала - caniuse.com. Поиск download показывает, что download в основном поддерживается, но отсутствует IE, Safari и Opera. В противном случае, похоже, он доступен, но только для Android после 4.4. Глядя на мой notes, это похоже на то, что Android начинает использовать веб-сайт Chromium, а не устаревшую библиотеку веб-просмотра —, как я уже говорил.

Возможные решения

Как @jcesarmobile упоминалось вы можете использовать

_OR_

Вы можете попробовать другой Webview библиотеку, которая может иметьатрибут, который вы ищете - как crosswalk.

На данный момент crosswalk поддерживает только Android, но есть также несколько бета-версий, которые вы также можете попробовать в the repository. И, если ваша целевая платформа - iOS, тогда вместо этого используйте WKWebview.

ПРИМЕЧАНИЕ. стандартная библиотека веб-просмотра уже находится на вашем мобильном устройстве, пешеходный переход является отдельным и добавит не менее 20 мегабайт к вашему приложению.

+0

Спасибо за подробности, мы узнаем что-то каждый день! – Robbert

+0

Спасибо. Вы задали хороший вопрос - это редко. Хороший вопрос означает, что другие разработчики будут учиться на этом, что является моей конечной целью. FWIW: Я работаю над роботикой с Javascript, которая включает node.js. Я думаю, что через несколько лет JS станет выбором для большинства роботизированных разработчиков. – JesseMonroy650

+0

Это также относится к файлам, которые хранятся в приложении? Файлы, не требующие взаимодействия на стороне сервера. Поэтому вместо http: // .... как путь он хранится локально, как path/file.mp3. Потому что он также не работает с локальными файлами. –