putExtra()
方法,在JS中通过
getIntent().getXXXExtra()
获取。
1、实现步骤
创建Android项目并配置WebView:在Android Studio中创建新项目,并在AndroidManifest.xml
文件中添加网络权限,在activity_main.xml
文件中添加WebView
组件。
加载HTML文件:在assets文件夹中创建index.html
文件,包含基本的HTML结构和JavaScript函数,用于接收和展示从Android传递过来的参数。
在MainActivity中实现参数传递:在MainActivity.java
文件中配置WebView
以启用JavaScript,并使用evaluateJavascript
方法调用JavaScript中的函数并传递参数。
运行应用:在Android模拟器或真实设备上运行应用,查看页面上是否成功显示从Android传递过来的参数。
2、示例代码
HTML文件(index.html)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Android to JS</title> </head> <body> Android to JavaScript Communication <div id="dataDisplay"></div> <script> function displayData(data) { document.getElementById('dataDisplay').innerText = data; } </script> </body> </html>
MainActivity.java
import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.webview); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient()); // 加载本地 HTML 文件 webView.loadUrl("file:///android_asset/index.html"); // 传递数据到 JavaScript String data = "Hello from Android!"; webView.post(new Runnable() { @Override public void run() { // 调用 JavaScript 函数并传递参数 webView.evaluateJavascript("displayData('" + data + "');", null); } }); } }
3、单元表格
步骤 | 描述 | 代码示例 | |
1 | 创建Android项目并配置WebView | 在AndroidManifest.xml 中添加网络权限;在activity_main.xml 中添加WebView 组件 |
|
2 | 加载HTML文件 | 在assets文件夹中创建index.html 文件,包含基本的HTML结构和JavaScript函数 |
|
3 | 在MainActivity中实现参数传递 | 在MainActivity.java 中配置WebView 以启用JavaScript,并使用evaluateJavascript 方法调用JavaScript中的函数并传递参数 |
|
4 | 运行应用 | 在Android模拟器或真实设备上运行应用,查看页面上是否成功显示从Android传递过来的参数 |
4、相关问题与解答
问题1:如何在Android中调用JavaScript中的多个参数函数?
解答:可以使用evaluateJavascript
方法或loadUrl
方法,并通过逗号分隔参数来调用JavaScript中的多个参数函数。webView.evaluateJavascript("javascript:functionName('param1', 'param2', 'param3');", null);
。
问题2:如何在JavaScript中调用Android中的方法并传递参数?
解答:可以通过定义一个Java类并使用@JavascriptInterface
注解来暴露给JavaScript调用,然后在JavaScript中通过接口名称调用该方法并传递参数,定义一个名为MyJavaScriptInterface
的Java类,并使用@JavascriptInterface
注解将functionName
方法暴露给JavaScript调用,然后在JavaScript中通过Android.functionName('param1', 'param2');
来调用该方法并传递参数。