2013-09-25 19 views
6

Bir Android düğmesinin tıklatıldığında, bazı JavaScript'i web görünümüne yükleyen bir web görünümüm var. Sorum, bir Android değişkenini yüklendiğinde JavaScript'e nasıl geçireceğim?Web tarayıcısında başlatılan JavaScript'ten JavaScript değişkenine geçiş

Benim Güncel kod

private OnClickListener OnClick_grabit = new OnClickListener() { 
     public void onClick(View v) { 
      webView.loadUrl("javascript: function loadScript(scriptURL) { 
       var scriptElem = document.createElement('SCRIPT'); 
       scriptElem.setAttribute('language', 'JavaScript'); 
       scriptElem.setAttribute('src', scriptURL); 
       document.body.appendChild(scriptElem); 
       } loadScript('http://www.pathtojavascript/javascript.js');"); 
     } 
    }; 

SO i Android'den() başlatmak javascript şey geçmesi gerekiyor Web görünümündeki JavaScript'ini yüklemek için. Yalnızca bir kez senaryoyu yüklemeniz gerekir her şeyden

webView.loadUrl("javascript:wrapJS.functionName("+value+","+value+")"+); 
+0

varlıkları bulunan komut var mı? Veya web'den yüklemeniz mi gerekiyor? – gunar

+0

@gunar Web'den yüklendi –

+0

Ve web sayfası da web'den yüklenir? – gunar

cevap

5

First (senin onClick bunu her zaman yükleniyor):

+0

Bu kadar basit miydi? :) – gunar

+0

Cevabınızı genişletebilir misiniz? –

0

Sen Web görünümü loadURL gerekir, benim önceki app böyle bir şey var sonra benim için çalıştı doğru sözdizimi

StringBuilder buf=new StringBuilder("javascript:testFunction('"+bar+"','"+foo+"')"); 
Log.d(TAG, "returned string:"+buf.toString()); 
mWebView.loadUrl(buf.toString()); 
2

çağırır:

public class JavaScriptInterface { 
    Context mContext; 
    JavaScriptInterface(Context c) { 
     mContext = c; 
    }  
    @JavascriptInterface 
    public String getFromAndroid() { 
     return "This is from android."; 
    } 
} 

Webview kodu:

WebView webView = (WebView) findViewById(R.id.webview); 
webView.setWebChromeClient(new WebChromeClient() {}); 
WebSettings settings = webView.getSettings(); 
settings.setJavaScriptEnabled(true); 
settings.setDomStorageEnabled(true); 
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android"); 

Html ve javascript:

<input type="button" value="Get from android" onClick="getFromAndroid()" /> 
<script type="text/javascript"> 
    var myVar = null; 
    function getFromAndroid() { 
     myVar = Android.getFromAndroid(); 
     alert(myVar); 
    } 
</script> 
+0

Peki ya 'bar' veya 'foo' bir '' 'içeriyorsa? –

+0

Bir günlüğüne arama burada sona erer .. Başkalarına kıyasla gerçekten en iyi cevap –

4

Java sınıfı olan loadUrl("javascript:initialize(" + myNumber + ");")

+0

Android için çalışmıyor 5. –

+1

Bu, ellerinizi en iyi şekilde yapıyor. – MurifoX

İlgili konular