ilya.guzikov
Жел. 28, 2020, 12:19 Т.Ж.

QML WebView

QML C++

Добрый день. Похожий вопрос поднимался в этом форуме, однако решение проблемы найдено не было. Имеется webView в qml слое в нём отрисовывается некий сайт на котором присутствует кнопка для скачивания файла. Необходимо как-то получить сигнал нажатия на эту кнопку и ссылку на скачивание файла. webView не возвращает данный сигнал, только сигнал onLoadingChanged который не подходит для этой задачи. Есть ли в с++ или qml готовое решение этого вопроса или нужно создавать некую обёртку и как её грамотно создать?

2

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

16
Михаиллл
  • Жел. 28, 2020, 1:58 Т.Ж.

WebView сильно урезан. Сам мучался с похожими трудностями. Посмотрите, может быть можно использзовать веб энжин

    ilya.guzikov
    • Жел. 28, 2020, 7:51 Т.Қ.

    веб энжин в clang под андроид дфже в про файле не видит и не собирается

      Михаиллл
      • Жел. 28, 2020, 7:55 Т.Қ.

      Тогда придется или страдать, или думать как его пересобирать. Но Анонсирую много трудностей и мало описаний подобных решений в интернетах. Сама сборка вебвью, к сожалению, очень урезана и там много чего нет.

        ilya.guzikov
        • Жел. 28, 2020, 8:33 Т.Қ.
        • (өңделген)

        мне нужен обработчик для загрузки и скачивания файлов и всё. Вы пробовали реализавать "продвмнутый" webView через JS?

          Михаиллл
          • Жел. 28, 2020, 10:04 Т.Қ.

          Покапайте в сторону сборки (нужно будет флаги поменять в коде) вебвью для андроида.Как то один касяк вебвью решался так, может быть и Ваша задача также решиться.

            ilya.guzikov
            • Жел. 28, 2020, 10:57 Т.Қ.

            я так понимаю нужно через метод runJavaScript необходимо настроить слот на некий сигнал из html, но как?

              ilya.guzikov
              • Жел. 29, 2020, 1:16 Т.Ж.

              про какие флаги вы говорите?

                Михаиллл
                • Жел. 29, 2020, 1:54 Т.Ж.

                ТОчно не помню как там пишется. У меня была трудность с сохранением кеша, нужно было в исходниках поставить гдето тру для его сохранения. Возможно похожая ситуация с сигналами.

                  ilya.guzikov
                  • Жел. 30, 2020, 7:15 Т.Қ.

                  На просторах инета найти информацию не могу. Ранее были пакеты webKit в которых была возможность отлавливать ссылки, которые не изменяют url (пр: кнопка добавления картинки) сейчас в webView этого нет.

                    Михаиллл
                    • Жел. 30, 2020, 7:37 Т.Қ.

                    Думаю стоит на официальном форуме поспрашивать, как пересобирать вебвью, может быть ответят

                      ilya.guzikov
                      • Жел. 30, 2020, 8:32 Т.Қ.

                      попробую

                        ilya.guzikov
                        • Жел. 31, 2020, 11:48 Т.Қ.

                        В общем опыт следующий, webView при нажатии на кнопку upload на стороне html: в сборке десктопной вызывает filedialog и всё ок, однако в сборке под пндроид filedislog не вызывается, хоть и прописаны все периишины. Может какое-то доролнительное взаимодействие в андроиде должно быть между webview и filedialog. Одним из вариантов решение вижу запустить webview нативно через java в которой обработка upload работает.

                          Михаиллл
                          • Қаң. 1, 2021, 2:12 Т.Ж.

                          Попробуйте. Но мне кажется, это особенность сборки под андроид. Все же попробуйте перемобрать.

                            ilya.guzikov
                            • Қаң. 1, 2021, 4:10 Т.Ж.

                            пробовал, и ращные проекты запускал с вебвью, всегда такой же оезультат

                              Михаиллл
                              • Қаң. 1, 2021, 12:08 Т.Қ.

                              Разные проекты нет смысла собирать. А Из тех исходников, что вы собирали, если собрать под десктоп, то там сигнал будет?

                                ilya.guzikov
                                • Қаң. 2, 2021, 3:47 Т.Қ.

                                никаких сигналов не испускается, однако под десктоп выскакивает filedialog, а под android нет, когда на html разметке кликаешь на компонент type=file.

                                  Пікірлер

                                  Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                                  Кіріңіз немесе Тіркеліңіз