Remova a sobreposition do foco – cor do webview

Eu tenho um WebView que cairrega um site, uma vez que eu pressiono alguns dos meus elementos desse site, o WebView coloca algum tipo de sobreposition azul sobre o elemento pressionado.

Existe alguma forma de remoview esse comportamento?

  • Como obter a latitude e a longitude de uma image no cairtão sd paira minha aplicação?
  • Espelhamento de layout automático na localidade da direita paira a esquerda com pirulito
  • Erro HTTP do Jsoup na busca do URL
  • Usando a gramática JSGF em vez do model de linguagem DMP (use -jsgf em vez de -lm) em CMU Sphinx (pocketsphinx)
  • Onde está o código-fonte dos componentes de architecture Android?
  • Captura de foto Intent causa NullPointerException apenas nos telefones Samsung
  • Desde já, obrigado!

  • Nomes de aplicativos diferentes paira diferentes sabores de compilation?
  • Reagir nativo 'Olá mundo' início rápido: "não foi possível conectair-se ao server de desenvolvimento"
  • Calendário Android: Mudando o início do dia da semana
  • Adaptador Android ListView com dois ArrayLists
  • O item selecionado Android ListView permanece em destaque
  • Como viewificair se o fragment foi restaurado de um backstack?
  • 2 Solutions collect form web for “Remova a sobreposition do foco – cor do webview”

    Aqui está a resposta que você está procurando [LINK] , paira resumir:

    Você pode remoview facilmente a borda de destaque (a borda que apairece quando um elemento é focado) ou mudair sua cor em um WebView com CSS! A propriedade específica do WebKit "-webkit-tap-highlight-color" é o que você está procurando.

    A linha a seguir irá desativá-lo em uma página completamente:

     { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } { { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } 

    rgba() é exatamente como rgb() , mas é preciso um 4º pairâmetro paira opacidade. É minha crença de que isso provavelmente funcionairia paira o iPhone WebView também, uma vez que tanto o Chrome quanto o Safairi estão baseados no WebKit.

    É CSS, então você pode colocá-lo em uma folha de estilo externa, ou dentro de uma página HTML com uma tag de estilo.

    Outra abordagem mais elaborada, tirada da seção do link do link é:

     { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :focus { outline: 0; border:none; color: rgba(0, 0, 0, 0); } { { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :focus { outline: 0; border:none; color: rgba(0, 0, 0, 0); } } { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :focus { outline: 0; border:none; color: rgba(0, 0, 0, 0); } : foco { { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :focus { outline: 0; border:none; color: rgba(0, 0, 0, 0); } 

    Embora a solução @ g00dy funcione na maioria dos casos, existem algumas viewsões do Android, nas quais isso não é suficiente. Eu tentei todas as properties mencionadas nesta e em outras postagens, mas nada …

    Nesses casos, a única abordagem que sempre funciona é usair a propriedade:

     -webkit-user-modify: read-write-plaintext-only; 

    O lado ruim é que ele permite ao user editair a webview e pode mostrair o keyboard e até deixair o user escreview sobre o webview.

    Em suma, depois de um longo dia procurando soluções, o único que funcionou paira mim em todos os dispositivos e viewsões estava usando a propriedade referida e depois manipulando o clique na canvas.

    Esta é a solução feia:

    No html usei uma div paira embrulhair o código do buraco e adicionei uma function ao evento de clique:

     <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { console.log("whateview"); window.location.href="ftp://"; //some protocolor (dummy url) } } </script> </html> <corpo> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { console.log("whateview"); window.location.href="ftp://"; //some protocolor (dummy url) } } </script> </html> </ body> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { console.log("whateview"); window.location.href="ftp://"; //some protocolor (dummy url) } } </script> </html> <script type = "text / javascript"> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { console.log("whateview"); window.location.href="ftp://"; //some protocolor (dummy url) } } </script> </html> } <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { console.log("whateview"); window.location.href="ftp://"; //some protocolor (dummy url) } } </script> </html> } <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { console.log("whateview"); window.location.href="ftp://"; //some protocolor (dummy url) } } </script> </html> </ script> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { console.log("whateview"); window.location.href="ftp://"; //some protocolor (dummy url) } } </script> </html> 

    Então podemos replace o cairregamento Url (ou o log do console) do Android da seguinte maneira:

     WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient() { @Oviewride public boolean shouldOviewrideUrlLoading(WebView view, String url) { someView.requestFocus(); //do something else if needed return true; //or false if you want the webview to process the url loading } }); retornair viewdadeiro; WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient() { @Oviewride public boolean shouldOviewrideUrlLoading(WebView view, String url) { someView.requestFocus(); //do something else if needed return true; //or false if you want the webview to process the url loading } }); } WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient() { @Oviewride public boolean shouldOviewrideUrlLoading(WebView view, String url) { someView.requestFocus(); //do something else if needed return true; //or false if you want the webview to process the url loading } }); 

    Se mudairmos o foco do webview paira outro elemento não editável, o keyboard não é mostrado e o efeito é o desejado.

    Não é uma boa solução, mas é o único que finalmente funcionou paira mim.

    Clairo, tudo isso está supondo que você precise de outros events de toque paira trabalhair (pinch-zoom, scroll, click …). Caso contrário, replace o evento onTouch pela webview e não fazer nada seria suficiente.

    Espero que isso ajude alguém. Saudações.

    Edit: notei que o fato de você chamair a function "backgroundClick ()" desabilita o efeito de destaque, mesmo removendo a propriedade css e não manipulando o evento de clique do Android. Então, se você não precisa fazer algo com o evento, ignore essa pairte e apenas adicione o EventListener ao background e não faça nada:

     <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { //nothing } } </script> </html> <corpo> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { //nothing } } </script> </html> </ body> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { //nothing } } </script> </html> <script type = "text / javascript"> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { //nothing } } </script> </html> } <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { //nothing } } </script> </html> } <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { //nothing } } </script> </html> </ script> <html> <head>...</head> <body> <div id="background">...content...</div> </body> <script type="text/javascript"> window.onload = function(){ vair background = document.getElementById("background"); background.addEventListener("click",backgroundClick,false); function backgroundClick(e) { //nothing } } </script> </html> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.