Android与JS交互实践:JavascriptBridge示例解析

需积分: 9 0 下载量 110 浏览量 更新于2024-12-13 收藏 109KB ZIP 举报
资源摘要信息:"JavascriptBridge:android app 演示 ①android 调用JS 方法,有参和无参 ②JS 调用 android 方法,有参和无参 的一个小例子" 在移动应用开发中,特别是在混合应用开发领域,实现原生应用代码与JavaScript代码之间的交互是一个常见需求。这种交互通常是通过WebView组件实现的,因为WebView提供了一个内嵌的浏览器环境,允许应用加载网页并在其中执行JavaScript代码。为了在Android应用和WebView内的JavaScript代码之间建立桥梁,开发者通常会使用JavascriptBridge。 JavascriptBridge是一个中间件,它允许Android原生代码与WebView中运行的JavaScript代码进行通信。通过JavascriptBridge,可以实现从原生应用调用JavaScript函数(无论是有参还是无参),同时也能从JavaScript代码调用Android原生的方法(同样支持有参和无参的调用)。这种技术为混合应用提供了灵活性和功能的强大扩展能力。 ### Android 调用JS 方法 在Android代码中调用JavaScript方法,首先需要确保WebView已经加载了含有JavaScript的网页。接着,可以通过WebView提供的API来注入Javascript代码。调用时可以传递参数,也可以不传递参数。例如: - 无参调用: ```java webView.loadUrl("javascript:callFromAndroid();"); ``` - 有参调用: ```java webView.loadUrl("javascript:callFromAndroidWithParams('param1', 'param2');"); ``` 在JavaScript代码中,需要定义这些方法并接收参数(如果有的话): ```javascript function callFromAndroid() { // 执行一些操作 } function callFromAndroidWithParams(param1, param2) { // 根据传入的参数执行一些操作 } ``` ### JS 调用 Android 方法 要让JavaScript能够调用Android中的方法,通常需要在Android代码中设置一个JavascriptInterface,这个接口定义了可供JavaScript调用的方法。同时,必须在WebView的设置中启用JavaScript,并且启用接口的交互。 ```java class WebAppInterface { @JavascriptInterface public void callAndroidMethod() { // JavaScript调用此方法时执行的操作 } @JavascriptInterface public void callAndroidMethodWithParams(String param1, String param2) { // JavaScript调用此方法并传入参数时执行的操作 } } // 设置WebView启用JavaScript并添加JavascriptInterface webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new WebAppInterface(this), "Android"); ``` 然后在JavaScript中,就可以直接调用这些接口中的方法,无论是有参还是无参。 - 无参调用: ```javascript Android.callAndroidMethod(); ``` - 有参调用: ```javascript Android.callAndroidMethodWithParams('value1', 'value2'); ``` ### 标签解读 标签“android”, “webview”, “js”, “interactive”, “invoke”, “Java”关联到了多个技术点,涵盖了实现这一交互所涉及的核心组件和技术概念。Android代表了整个平台和开发环境,WebView是承载网页并允许JavaScript运行的容器,JS(JavaScript)是网页中的脚本语言,interactive指代了这种技术带来的互动性,invoke指的是调用方法的动作,而Java则是Android应用开发的主要编程语言。 ### 压缩包子文件的文件名称列表 文件名称列表中包含“JavascriptBridge-master”表明这是一个与JavascriptBridge相关联的项目或者示例代码库的主干版本。该列表表明文件所涉及的范围是关于JavascriptBridge的实现和演示,用于教学或实际应用开发的示例。