Проблемная область: считыватель формата ePub на базе Android WebView -
Нам нужны текстовые выделения, которые доступны через методы JavaScript (т. Е. Включить их, выключить, сохранить их, отправить их по электронной почте и т. Д.)
Кто-нибудь в курсе, пожалуйста, поправьте меня, если я ошибаюсь:
При выделении текста в WebView -
По сути, нам передается наложение TextView (WebTextView), которое НИКОГДА НЕ ПРИКЛАДЫВАЕТСЯ к базовому html, кроме как визуально (хорошая работа по выравниванию всего этого и созданию бесшовного, кстати), для которого мы выполняем TextSelectionActionMode и ClipboardManager поставляется с результатами ... чтобы прояснить это, фактический HTML-код с WebView на самом деле НЕ выбирается ни разу во время этого процесса обработки, поэтому JavaScript не может получить доступ к результатам действия.
Итак, чтобы заставить это поведение работать в 3.1+, у меня есть несколько возможных планов на будущее для реализации моего собственного выбора в WebView - это та часть, где мне интересно, если я не могу видеть из своего угла :) -
1) захватить MOTION_DOWN длинного щелчка, который запускает режим выбора, переопределить встроенный TextSelection ActionMode (чтобы обеспечить брендинг клиентов - способ, который я обнаружил, так хакерски причиняет боль) наблюдает за перетаскиванием, захватывает позицию MOTION_UP , сопоставьте эти координаты на
WebView и сделать мой выбор на основе координат (сравнивая текст с текстом, захваченным ClipboardManager)
2) создайте свой собственный "WebTextView" (вся работа в лотерею, смеется) и не так хакерски создайте свой собственный ActionMode и выполните все вышеперечисленное.
3) использовать MotionEvents, сгенерированные процессом выбора акций, и каким-то образом переопределить режим Action TextSelection, вызванный этим.
Это варианты, которые я вижу, надеюсь, моя близость и разочарование
с этим меня ослепили проще (читай как встроенный)
Решение или два.
Еще раз спасибо за ваше время.