Я пытаюсь выбрать текст в webview, после того, как я выберу текст, мне нужно решить, что делать дальше. Не копируйте выделенный текст. У меня больше выбора для пользователь на выбор. Я имею в виду, после того, как пользователь выбрал текст в веб-обзоре, могу ли я запросить некоторую кнопку для дальнейшего? Я попытался использовать emulateshiftheld, чтобы решить мою проблему. Но в документах Google сказано: «Этот метод устарел». также, я не могу запросить кнопку выбора. вы можете щелкнуть ссылку, чтобы увидеть, что я имею в виду. ссылка: https://public.blu.livefilestore.com/y1pHhMR2iyIbQN7uJ2C-9CLLJBosWAZw2r4MvD0qyyTG-QWUM-06i6HFu4Fn4oaWnHMbDyTBOa-CPwN6PwoZNifSQ/select.jpg?download&psid=1Кто-нибудь знает, как выбрать текст в webview в android? не использовать emulateShiftHeld, так как в документах сказано: «Этот метод устарел»
0
A
ответ
0
Оклейка соответствующий код из WebView emulateShiftHeld() on Android Newer SDK's
/**
* Select Text in the webview and automatically sends the selected text to the clipboard
*/
public void selectAndCopyText() {
try {
KeyEvent shiftPressEvent = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
shiftPressEvent.dispatch(mWebView);
} catch (Exception e) {
throw new AssertionError(e);
}
}
0
Вопрос очень старый, но и для других людей здесь решение с JavaScript для API 19+. Просто добавьте это к вашему WebView:
public void getSelectedText(final SelectedTextInterface selectedTextInterface) {
evaluateJavascript("(function(){return window.getSelection().toString()})()", new ValueCallback<String>() {
@Override
public void onReceiveValue(final String selectedText) {
if (selectedText != null && !selectedText.equals("")) {
//If you don't have a context, just call
//selectedTextInterface.onTextSelected(selectedText);
if (context instanceof Activity) {
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
selectedTextInterface.onTextSelected(selectedText);
}
});
} else selectedTextInterface.onTextSelected(selectedText);
}
}
});
}
public interface SelectedTextInterface {
void onTextSelected(String selectedText);
}
Когда вы закончите с выбора текста, просто назвать его:
webView.getSelectedText(new YourWebView.SelectedTextInterface() {
@Override
public void onTextSelected(String selectedText) {
//Your code here
}
});
Я надеюсь, что это может быть полезно для некоторых людей :-)
картины ссылка https://public.blu.livefilestore.com/y1pHhMR2iyIbQN7uJ2C-9CLLJBosWAZw2r4MvD0qyyTG-QWUM-06i6HFu4Fn4oaWnHMbDyTBOa-CPwN6PwoZNifSQ/select.jpg?download&psid=1 – songtzu