Android在做webview与js交互,线程变化以及json传值失败

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

  1. js调用android方法的时候,android的方法并非在UI线程执行,此时view的setVisibility()方法需到UI线程处理

    runOnUiThread(new Runnable() {
         public void run() {
             mRgTab.setVisibility(webViewForRgTabShow ? View.VISIBLE : View.GONE);
         }
     });
    
  2. android调用js方法传值的时候,js端接受的值,如果值是json字符串,js端解析的时候需定义为var,不可定义为let,否则出现解析错误,并非传值失败;

    if (Build.VERSION.SDK_INT < 19) {
       webview.loadUrl("javascript:setClientParams('"+ params+ "')");
       } else {
         webview.evaluateJavascript("javascript:setClientParams('" + params + "')",
     	       new ValueCallback(){
                     public void onReceiveValue(String s) {
                         LogUtil.i(TAG, "onReceiveValue  s: " + s);
                     }
                 });
        }
    

转载于:https://my.oschina.net/ccmagic/blog/2872969

你可能感兴趣的:(Android在做webview与js交互,线程变化以及json传值失败)