2016-03-09 3 views
0

Я работаю над привязкой javascript и android.javascript android does not work

Веб вид

visor.addJavascriptInterface(new WebAppInterface(this), "Android"); 
visor.setWebViewClient(new WebViewClient()); 

Мой веб-интерфейс:

public class WebAppInterface { 
     Context mContext; 

     WebAppInterface(Context c) { 
      mContext = c; 
     } 

     @JavascriptInterface 
     public void showToast(String toast) { 
      Toast.makeText(mContext, toast+" cosas", Toast.LENGTH_SHORT).show(); 
      visor.loadUrl("www.google.com"); 
     } 
    } 

HTML нагрузки для андроид

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /> 

<script type="text/javascript"> 
    function showAndroidToast(toast) { 
     Android.showToast(toast); 
    } 
</script> 

Выполнение работ для тоста, но нагрузки URL Безразлично» работа , Что я делаю не так?

+0

Измените название к тому, что на самом деле описывает вашу проблему. – csmckelvey

+0

Что такое 'visor'? –

+0

http://developer.android.com/reference/android/webkit/WebView.html Предоставляет пример, похожий на то, что вы пытаетесь сделать. –

ответ

0

Если URL должен быть загружен после его первого исполнения, он должен быть загружен из другого потока, как это:

mWebView.post(new Runnable() { 
     @Override 
     public void run() { 
      mWebView.loadUrl("http://google.com"); 
     } 
    }); 

И так в вашем случае:

public class WebAppInterface { 
     Context mContext; 

     WebAppInterface(Context c) { 
      mContext = c; 
     } 

     @JavascriptInterface 
     public void showToast(String toast) { 
      Toast.makeText(mContext, toast+" cosas", Toast.LENGTH_SHORT).show(); 
      visor.post(new Runnable() { 
       @Override 
       public void run() { 
        visor.loadUrl("http://google.com"); 
       } 
      }); 
     } 
    } 
+0

Спасибо! после выполнения frist, во всех ситуациях нам нужен loadurl на другой поток? –

+0

Да. Фактически, это лучше, если вы используете один и тот же путь каждый раз, когда хотите загрузить URL. – cprakashagr

+0

Если вы это сделаете, вы действительно убедитесь, что основной поток никогда не блокируется. – cprakashagr