2012-11-23 1 views
5

Ho implementato una funzione in Webview. Metto la funzione javascript nella testina html e poi la carica attraverso web.loadUrl ma la webview non prende in considerazione la funzione. È possibile caricarlo in questo modo? o sono sulla strada sbagliata?È possibile caricare la funzione javascript di base in una visualizzazione Web?

"<td><a href='' onclick=\"displaying('image url')\" id=/image"+my_image[i] +"/"+" 

class='popup-open'><img 

src='"+my_image[i]+"'"+ 


       "width='80' height='65'></a></td></tr><tr>"; 

the hmtl content 

    String webData = "<!DOCTYPE html>" + 

       "<head> "+ 

       "<script>"+"function displaying(url) 

{document.getElementById('image').innerHTML =\"<img src=\"url\" width=\"100\" height=\"105\">\";}"+"</script>" 
       + 
       " </head><body>"+ html_content +"</tr></table></body></html>"; 

risposta

0

Forse è il tuo JavaScript o qualche merda di sintassi. Prima di tutto, prova a capire qual è il messaggio di errore dal motore di WebKit.

Per visualizzare i messaggi javascript di Webview, inserire onConsoleMessage nell'implementazione.

myWebView.setWebChromeClient(new WebChromeClient() { 
      public boolean onConsoleMessage(ConsoleMessage cm) { 
       Log.d(cm.message() + " -- From line " 
         + cm.lineNumber() + " of " 
         + cm.sourceId()); 
       return true; 
      } 
     }); 

Assicurarsi di aver seguito abilitato

WebSettings webSettings = webView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
+0

ma è possibile caricare javascripit all'interno WebView? – Dimitri

+0

Non sono sicuro di cosa intendi? Hai alcune opzioni: 1. carico javascript come una parte della pagina web (si veda il metodo jQuery.getScript) sceneggiatura 2. carico con tag script HTML Ma se si vuole esporre il codice Java di Android alla pagina html di WebView, poi è sufficiente creare una classe java con i metodi, renderla disponibile ai contenuti della webview webView.addJavascriptInterface (new WebAppInterface (this), "SOME_NAME"); E quindi chiamarlo nel codice lato client if (SOME_NAME) {SOME_NAME.METHOD1()} –