Android WebView Javascript getSelection

Это возможно, но необходимо было бы разделить UIScrollView на подклассы и переопределить всю сенсорную обработку. Это не был бы мой предпочтительный проект - это возьмет хороший бит работы для разбираний в нем.

25
задан Bob Keathley 3 February 2011 в 21:46
поделиться

3 ответа

Вы должны попробовать rangy - Кросс-браузерный диапазон JavaScript и библиотека выбора.

0
ответ дан 28 November 2019 в 22:00
поделиться

Когда WebView переходит в «Режим выбора», WebView фактически не используется для выделения ... Он помещается в «WebTextView» (закрытый класс в арсенале Android), который имитирует положение текста, но позволяет изображениям чтобы показать, и позволяет вам «выбрать» текст, который появляется в реальном HTML. Проблема возникает, когда вы пытаетесь взаимодействовать с WebView после «выделения» текста. Дескрипторы выделения и курсора находятся в правильном положении, но на самом деле они находятся в специальном WebTextView, о котором я упоминал, поэтому у вас фактически нет выбора, чтобы получить через JavaScript getSelection или любые другие средства в JavaScript. Я работаю над созданием ACTION_DOWN (из LongPress), который запускает выделение, а также перетаскивание и ACTION_UP релиза от перетаскивания работают для меня через JavaScript, но это очень сложно и совсем не удобно для пользователя ...

http://www.java2s.com/Open-Source/Android/android-core/platform-frameworks-base/android/webkit/WebTextView.java.htm

проверить источник (это большая работа, чтобы имитировать выделение текста, а не предоставлять его). Это грустно, и в настоящее время очень болезненно для проекта, который предприняла наша команда - особенно после того, как мы сделали то же самое приложение для iPad ...

9
ответ дан 28 November 2019 в 22:00
поделиться

Наконец, в Android 4.4 KitKat WebView теперь основан на Chromium.

Поэтому у нас есть доступ к window.getSelection() !!

wv.evaluateJavascript("console.log(window.getSelection().baseNode.nodeValue);", null);

Протестировано на Nexus 5 & amp; Nexus 7.

1
ответ дан 28 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: