Ho difficoltà a ottenere la selezione da una WebView in Android.Android WebView Javascript getSelection
Posso ottenere la WebView per andare in modalità di selezione. Posso persino farlo copiare il testo nella ClipBoard. Ma quello che voglio davvero è evidenziare la selezione in modo permanente.
Quindi l'idea è mettere il WebView in modalità di selezione. Consenti all'utente di selezionare il testo e quindi di attivare qualcosa per evidenziare quel testo. Posso farlo funzionare recuperando il testo selezionato dagli Appunti, quindi cercarlo in Javascript ed evidenziarlo. Il problema si verifica quando l'utente seleziona una vera parola comune. Devo o evidenziarli tutti o in qualche modo capire dove la selezione è quella giusta.
Ho provato questo JavaScript che funziona su iPhone. Bu getSelection() non sembra funzionare su Android.
function highlight(colour) {
var range, sel;
if (window.getSelection) {
// Non-IE case
sel = window.getSelection();
if (sel.getRangeAt) {
range = sel.getRangeAt(0);
}
document.designMode = "on";
if (range) {
sel.removeAllRanges();
sel.addRange(range);
}
// Use HiliteColor since some browsers apply BackColor to the whole block
if (!document.execCommand("HiliteColor", false, colour)) {
document.execCommand("BackColor", false, colour);
}
document.designMode = "off";
} else if (document.selection && document.selection.createRange) {
// IE case
range = document.selection.createRange();
range.execCommand("BackColor", false, colour);
}
}
Qualche suggerimento?
Come si arriva a copiare il testo negli appunti? Lo fai a livello di programmazione o contando sull'utente per effettuare la selezione manualmente. –