2017-09-01 1 views

Répondre

1

vous devez exécuter le script java

public static String Highlightscript = " <script language=\"javascript\">" + 

    "function highlightSelection(){" + 
    "var userSelection = window.getSelection();" + 
    "for(var i = 0; i < userSelection.rangeCount; i++)" 
    + " highlightRange(userSelection.getRangeAt(i));" + 
    "}" + 
    "function highlightRange(range){"+ 
    "span = document.createElement(\"span\");"+ 
    "span.appendChild(range.extractContents());"+ 
    "span.setAttribute(\"style\",\"display:block;background:#ffc570;\");"+ 
    "range.insertNode(span);}"+ 
    "</script> "; 

et

webView.loadUrl("javascript:highlightSelection()"); 

assurez-vous que vous avez activé javascript

WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
+0

merci. Pouvez-vous m'expliquer un peu plus? cette userSelection.rangeCount est cette fonction intégrée? Pouvez-vous m'expliquer ce morceau de code? Merci à l'avance – MagicWand

+0

oui, il sera fonction intégrée. Lorsque vous chargez des données dans Webview, ajoutez la chaîne Highlightscript avec. et lorsque l'utilisateur clique surligner le bouton appel 'webView.loadUrl (" javascript: highlightSelection() ");' – Redman

+0

sur longview webview permet de sélectionner du texte. donc ce userselection.rangecount connaîtrait le point de départ et de fin de la sélection de l'utilisateur? Une autre chose est par une pression longue j'obtiens quelques-unes des options par défaut comme copier, partager, rechercher sur le web. Est-il possible d'ajouter plus d'options ou de désactiver ces options? – MagicWand

0

Dans Android 4.1 (Jellybean), WebView.findAll() est obsolète, nous devrions utiliser WebView.findAllAsync à la place.

reference

souhaitent que cette aide :)

+0

En fait non. J'ai vu ça ... mais toujours merci quand même. :) – MagicWand