项目中需要使用android与js的混编来开发app。
下面就介绍一下吧。
有时候我们需要用js调用native控件,要想实现这个功能,我们需要做的就只有三步:
1.允许webview执行js脚本
2.向js暴露方法
3.访问网页
下面是代码部分:
java:
1 package com.bdyx.founder.jsnativedemo; 2 3 import android.os.Bundle; 4 import android.support.v7.app.AppCompatActivity; 5 import android.webkit.JavascriptInterface; 6 import android.webkit.WebView; 7 import android.widget.Toast; 8 9 public class MainActivity extends AppCompatActivity {10 private WebView webView;11 @Override12 protected void onCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 setContentView(R.layout.activity_main);15 webView = (WebView) findViewById(R.id.wv);16 setWebView();17 }18 private void setWebView(){19 //允许JavaScript执行20 webView.getSettings().setJavaScriptEnabled(true);21 //向js传递对象22 webView.addJavascriptInterface(new ShowToast(),"toastandroid");23 //不会node的小伙伴可以保存到assets24 //webView.loadUrl("file:///android_asset/index.html");25 //访问网页26 webView.loadUrl("http://192.168.253.1:8000/");27 }28 public final class ShowToast {29 //Html调用此方法传递数据,注解一定要留着否则会出错30 @JavascriptInterface31 public void show() {32 Toast.makeText(MainActivity.this,"调用",Toast.LENGTH_LONG).show();33 }34 }35 }
html:
weifengzz 本例子是点击按钮调用android代码
其实就是这么简单!
项目已经传到github上了