2017-06-10 1 views
1

私はAndroidのアプリケーションを作成していると私はWebViewのからロードされた「str8red.com」内にある次のJavaScript持っている:私はそのテキストボックスを持っているアンドロイドアプリケーション:峠のJavascriptヴァールネイティブJavaへの変数

<script>var name = "bob", age = 30;</script> 

を私が使用して設定することができます。

textView.setText("Static Text") 

私はjavascriptのVAR nameから変数への私のテキストボックスを設定したいと思います。私はwebview.loadUrl("javascript:Android.getIds(Ids);");evaluateJavascriptを利用しようとしましたが、成功しませんでした。私はまた、スタックのオーバーフローと成功していないWeb上の多数のガイドに従おうとしました。以下は

はWebViewのをロードするためのコードです:

wv.evaluateJavascript("fromAndroid()", new ValueCallback<String>() { 
     @Override 
     public void onReceiveValue(String value) { 
      textView.setText(value); 

wv = (WebView) findViewById(R.id.wv); 
//Enable JavaScript 
wv.getSettings().setJavaScriptEnabled(true); 
wv.setFocusable(true); 
wv.setFocusableInTouchMode(true); 
//Set Render Priority To High 
wv.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 
wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
wv.getSettings().setDomStorageEnabled(true); 
wv.getSettings().setDatabaseEnabled(true); 
wv.getSettings().setAppCacheEnabled(true); 
wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
//Load Url 
wv.loadUrl("https://str8red.com/"); 

答えて

0

[OK]を、

だから、それはキットカットから何のために上向きにそれはのように単純であることが判明します私の理解のギャップは、javascript変数に直接アクセスしようとしていたことですが、これはevaluateJavascriptが行っていることではありません。実際には、選択されたjavascript関数fromAndroid()がこの例で実行され、返されるものはネイティブアプリに変数として格納されているようです。

<script> 
function fromAndroid(){ 
    return "{% if user.is_authenticated %}true{% else %}false{% endif %} 1 0"; 
} 
</script> 

ハッピーが専門家によって作成されるが、私は、これは将来的に誰かを助けることを願って:それは助け包み

以下は私のjavascriptのコードです。