温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

安卓webview如何与原生代码交互

发布时间:2025-07-28 16:33:00 来源:亿速云 阅读:130 作者:小樊 栏目:移动开发

在Android应用中,WebView是一个用于显示网页内容的组件。有时候,我们需要在WebView中加载的网页与原生代码(Java/Kotlin)进行交互。这可以通过以下两种方式实现:

  1. 从原生代码调用WebView中的JavaScript函数:

要在原生代码中调用WebView中的JavaScript函数,您需要使用WebView.loadUrl()方法。首先,确保您的WebView已经加载了包含JavaScript函数的网页。

webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/your_web_page.html");

然后,在原生代码中调用JavaScript函数:

webView.loadUrl("javascript:yourJavaScriptFunction()");

例如,如果您想在WebView中调用名为showToast的JavaScript函数,您可以这样做:

webView.loadUrl("javascript:showToast('Hello from native code')");
  1. 从JavaScript调用原生代码中的方法:

要从JavaScript调用原生代码中的方法,您需要使用WebView.addJavascriptInterface()方法。首先,创建一个原生类的实例,该类将作为JavaScript和原生代码之间的桥梁。

public class WebAppInterface {
    Context mContext;

    WebAppInterface(Context c) {
        mContext = c;
    }

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

在这个例子中,我们创建了一个名为WebAppInterface的类,它有一个名为showToast的方法。注意,我们需要使用@JavascriptInterface注解来标记这个方法,以便JavaScript可以调用它。

接下来,将这个类的实例添加到WebView中:

webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.loadUrl("file:///android_asset/your_web_page.html");

现在,在WebView中的JavaScript代码中,您可以使用Android对象来调用原生代码中的方法:

Android.showToast('Hello from JavaScript');

这样,您就可以实现WebView与原生代码之间的双向交互。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手