Android和H5混合开发(一)
16lz
2021-01-23
1.html界面
2.将Html放入Android中的assets下
3.打开JS通道
WebSettings webSettings = mTestWB.getSettings(); webSettings.setJavaScriptEnabled(true);
4.WebView的addJavascriptInterface方法去注入一个我们自己写的interface。
mTestWB.addJavascriptInterface(new JsInterface(), "control");
5.loadUrl
mTestWB.loadUrl("file:///android_asset/index.html");
6.实现JSInterface
public class JsInterface { //JS中调用Java的方法 @JavascriptInterface public void showToast(String toast){ Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show(); //Java调用JS中的方法 log("show toast success"); } public void log(final String msg){ mTestWB.post(new Runnable() { @Override public void run() { mTestWB.loadUrl("javascript: log(" + "'" + msg + "'" + ")"); } }); } }
7.整体Java Demo
public class MainActivity extends AppCompatActivity { private WebView mTestWB; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTestWB = (WebView) findViewById(R.id.test_wb); //打开JS通道 WebSettings webSettings = mTestWB.getSettings(); // webSettings.setJavaScriptEnabled(true); //WebView的addJavascriptInterface方法去注入一个我们自己写的interface。 mTestWB.addJavascriptInterface(new JsInterface(), "control"); //loadUrl mTestWB.loadUrl("file:///android_asset/index.html"); } public class JsInterface { //JS中调用Java的方法 @JavascriptInterface public void showToast(String toast){ Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show(); //Java调用JS中的方法 log("show toast success"); } public void log(final String msg){ mTestWB.post(new Runnable() { @Override public void run() { mTestWB.loadUrl("javascript: log(" + "'" + msg + "'" + ")"); } }); } }}
更多相关文章
- [置顶] Android Studio Eclipse运行时出现 finished with non-ze
- android ListView 多次调用 getView方法
- Android获取WIFI 的ssid 方法适配Android9.0
- Android 出现 OutOfMemoryError 的一种解决方法
- android keytool 不是内部命令或外部命令在 (win7下不能用的解决
- Arcgis android 10.2安装方法
- Android studio 打不开官方虚拟机 100%成功解决方法