Android原生代码调用H5 Web网页中的Javascript函数方法
16lz
2021-01-23
Android原生代码调用H5 Web网页中的Javascript函数方法
重点是使用Android WebView中的evaluateJavascript()函数。
假设H5 Web网页中有一个Javascript函数add(x,y),add(x,y)函数计算两个数之和并返回。Android原生代码中如何调用存在于H5 Web页面中的Javascript函数add(x,y)呢?
先写一个测试H5 Web页面,web.html:
上层Java代码:
import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.webkit.ValueCallback;import android.webkit.WebSettings;import android.webkit.WebView;public class MainActivity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = findViewById(R.id.webview); mWebView.loadUrl("file:///android_asset/web.html"); WebSettings mWebSettings = mWebView.getSettings(); //启用JavaScript。 mWebSettings.setJavaScriptEnabled(true); mWebSettings.setUseWideViewPort(true); mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int a = 2, b = 3; //调用H5 Web网页中的Javascript函数add()计算a与b的和。 mWebView.evaluateJavascript("add(" + a + "," + b + ")", new ValueCallback() { //Javascript返回add()函数的计算结果。 @Override public void onReceiveValue(String value) { System.out.println("a+b=" + value); } }); } }); }}
更多相关文章
- 直播代码Android怎么实现定时任务及闹钟?
- Android | 代码混淆到底做了什么?
- Capacitor实现WebView中访问的自定义Android代码
- Android JSON解析示例代码
- 【Android】Android Studio 1.5+ 中混合调试Native和Java代码