В прошлом мы пытались связать событие «вверх» мыши в javascript, который отправляет диапазон в интерфейс javascript. Это событие срабатывает нормально, пока на экране не появится выделение. В этот момент выглядит так, будто webTextView немедленно вступает во владение, и событие повышения мыши никогда не регистрируется в webView. Мы должны поддержать обратно до 2.2, так что может быть почему.
емная область: считыватель формата 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, вызванный этим.
Вот варианты, которые я вижу, надеюсь, моя близость и разочарование этим ослепили меня к более простому (читай как встроенному) решению или двум.
Еще раз спасибо за ваше время.