Android调用本地js方法

在Android开发中,我们经常需要在WebView中加载网页,并且需要与网页进行交互。其中一种常见的需求是在Android端调用网页中的JavaScript方法。本文将介绍如何在Android中调用本地js方法,并提供相关代码示例。

准备工作

在开始之前,我们需要进行一些准备工作:

  1. 创建一个Android项目,并在布局文件中添加一个WebView组件:
<WebView
    android:id="@+id/webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  1. 在AndroidManifest.xml文件中添加Internet权限:
<uses-permission android:name="android.permission.INTERNET" />
  1. 在java代码中获取WebView组件,并加载网页:
WebView webView = findViewById(R.id.webview);
webView.loadUrl("

此时,我们已经准备好了Android端的基本环境,接下来我们将介绍如何调用本地js方法。

Android调用本地js方法

要实现Android调用本地js方法的功能,我们需要以下步骤:

  1. 创建一个与网页交互的接口类:
public class WebAppInterface {
    private Context mContext;

    public WebAppInterface(Context context) {
        mContext = context;
    }

    @JavascriptInterface
    public void showToast(String message) {
        Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
    }
}
  1. 将接口类绑定到WebView中:
WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
  1. 在网页中编写JavaScript代码,调用Android提供的接口方法:
function showAndroidToast(toast) {
    Android.showToast(toast);
}

当网页中的showAndroidToast函数被调用时,它将调用Android端的showToast方法,并显示一个Toast消息。

  1. 在Android端调用网页中的JavaScript方法:
webView.loadUrl("javascript:showAndroidToast('Hello from Android!')");

通过loadUrl方法,我们可以直接在WebView中执行JavaScript代码,并调用网页中的相应方法。

至此,我们已经完成了Android调用本地js方法的所有步骤。

完整示例代码

下面是一个完整的示例代码,演示了Android调用本地js方法的整个流程:

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);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.addJavascriptInterface(new WebAppInterface(this), "Android");

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                webView.loadUrl("javascript:showAndroidToast('Hello from Android!')");
            }
        });

        webView.loadUrl("
    }

    public class WebAppInterface {
        private Context mContext;

        public WebAppInterface(Context context) {
            mContext = context;
        }

        @JavascriptInterface
        public void showToast(String message) {
            Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
        }
    }
}

在这个示例中,我们在onCreate方法中设置了WebView的相关参数,并在onPageFinished方法中调用网页中的JavaScript方法。

总结

通过上述步骤,我们可以实现Android调用本地js方法的功能。在实际开发中,我们可以根据具体需求,扩展这个功能,实现更复杂的交互操作。希望本文能对你理解Android调用本地js方法有所帮助。