Android WebView和JS交互详细教程

本文详述了Android WebView与JS的交互过程,包括WebView调用Java方法的三个步骤和Android调用JS的简单方法,并列举了WebView开发中常见的问题和解决策略,如安全性和内存管理。此外,还分享了作者的技术交流群信息和学习资源。
摘要由CSDN通过智能技术生成

我们的态度是:每天进步一点点,理想终会被实现。

前言

Android webview和JS的交互已经是老生常谈了,坑很多、问题也很多。即使再多的坑,我们很多情况下还是要使用,毕竟直接嵌入HTML可以节省开发成本、节约开发时间,以及之前很火的Android和H5混合开发。因此,今天我写了一篇Android WebView和JS交互的详细教程,以及我们的WebView我们真是项目中都有哪些坑,或者说哪些问题BUG。

WebView和JS交互


1.android webview 调用Java方法

WebView调用Java方法主要分为三个步骤:

  • 允许WebView加载JS代码
  • 编写JS的接口类,供JS调用
  • 给WebView添加JS接口

    • MainActivity代码:
      `
public class MainActivity extends AppCompatActivity implements IJsBridge {
   
   private WebView mWebView;
   private TextView textView;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       mWebView = findViewById(R.id.webview);
       textView = findViewById(R.id.result);
       initView();
   }

   @SuppressLint("SetJavaScriptEnabled")
   private void initView() {
       //1.允许WebView加载JS代码
       mWebView.getSettings().setJavaScriptEnabled(true);
       //2.编写JS接口
       JStoJava jStoJava = new JStoJava(this);
       //3.WebView添加JS接口  传递JsToJava的对象jsToJava
       mWebView.addJavascriptInterface(jStoJava, "jsToJava");
       mWebView.loadUrl("file:///android_asset/index.html");
   }

   /**
    * 这个方法在子线程
    *
    * @param values
    */
   @Override
   public void setTextView(final String values) {
       runOnUiThread(new Runnable() {
           @Override
           public void run() {
               //切换到主线程执行
               textView.setText(values);
           }
       });
   }
}
  • 编写JS的接口类,供JS调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值