Включить загрузку в inAppBrowser - Phonegap/Cordova

Я использую Cordova 3.5-0.26 и inAppBrowser 0.5.0.

Теперь я загружаю внешнюю страницу в inAppBrowser. Есть кнопка скачать. Нажимаю скачать ничего не происходит. У меня загрузка отключена в inAppBrowser. Так как в кордове вид.

Затем я попытался активировать менеджер загрузок, используя следующий код (для Android)

appView.setDownloadListener(new DownloadListener() {
                    public void onDownloadStart(String url, String userAgent,
                            String contentDisposition, String mimetype,
                            long contentLength) {
                      Intent i = new Intent(Intent.ACTION_VIEW);
                      i.setData(Uri.parse(url));
                      startActivity(i);
                    }
                });

Это также не работает для inAppBrowser.

1) Как включить загрузку в inAppBrowser? 2) Есть ли способ поймать загрузку с помощью менеджера загрузок по умолчанию? 3) Если возможно, укажите решение как для ios, так и для android. если нет, то андроид пока подойдет. Пожалуйста помоги...


person AtanuCSE    schedule 13.08.2014    source источник
comment
Вам нужно будет открыть стандартный браузер, если вы хотите использовать менеджер загрузок Android. Если вы не готовы настроить файл Java Cordova, чтобы перехватывать любые загружаемые файлы и выполнять их через AsyncTask. Подробнее читайте здесь stackoverflow.com/a/12078937/541591   -  person James Wong    schedule 13.08.2014
comment
Если другой способ не появится, я готов настроить java-файлы. Я изменю java-файл inAppBrowser, чтобы принудительно загрузить его. Хотя я ожидаю лучшего решения как для iOS, так и для Android. Я не знаю цели C. @JamesWong   -  person AtanuCSE    schedule 13.08.2014
comment
И у меня нет проблем с использованием встроенного менеджера загрузки браузера.   -  person AtanuCSE    schedule 13.08.2014
comment
В качестве альтернативы вы можете использовать File API Cordova для загрузки файла, тогда ваш код будет работать на разных платформах.   -  person James Wong    schedule 13.08.2014
comment
Нет. Это не вариант. Внешняя ссылка является сторонним веб-сайтом. Я не могу это контролировать. Так что не будет URL-адреса для загрузки. @ДжеймсВонг   -  person AtanuCSE    schedule 13.08.2014


Ответы (1)


InAppBrowser не разрешает загрузку. Вам нужно будет изменить плагин, чтобы разрешить его загрузку.

Для Android внутри platforms\android\src\org\apache\cordova\inappbrowser

имя метода private void navigate(String url) {

включать

this.inAppWebView.setDownloadListener(new DownloadListener() {
                    public void onDownloadStart(String url, String userAgent,
                            String contentDisposition, String mimetype,
                            long contentLength) {
                      Intent i = new Intent(Intent.ACTION_VIEW);
                      i.setData(Uri.parse(url));
                      cordova.getActivity().startActivity(i);
                    }
                });

перед этой строкой this.inAppWebView.requestFocus();

снова тот же код в методе public void run() {

после этого сегмента

if (clearAllCache) {
                CookieManager.getInstance().removeAllCookie();
            } else if (clearSessionCache) {
                CookieManager.getInstance().removeSessionCookie();
            }

            inAppWebView.loadUrl(url);

в вашем файле .java внутри onCreate

appView.setDownloadListener(new DownloadListener() {
                    public void onDownloadStart(String url, String userAgent,
                            String contentDisposition, String mimetype,
                            long contentLength) {
                      Intent i = new Intent(Intent.ACTION_VIEW);
                      i.setData(Uri.parse(url));
                      startActivity(i);
                    }
                });

Не знаю про iOS

person AtanuCSE    schedule 26.12.2014
comment
Я попробовал и получил эту ошибку, не могли бы вы мне помочь? this.inAppWebView.setDownloadListener (новый DownloadListener() { ^ символ: переменная inAppWebView - person Phoenix214; 11.11.2015
comment
Это не работает.. его не принятый ответ.. Я пробовал тот же код.. Он никогда не выполнялся.. - person Mallikarjun Hampannavar; 27.08.2018