网易首页 > 网易号 > 正文 申请入驻

Android 原生与WebView 的交互

0
分享至

在Android中,WebView组件用于展示网页内容,同时支持与JavaScript代码进行交互,实现双向通信。以下是一个简单的示例,展示如何在Android应用中嵌入WebView,并通过Java与JavaScript互相调用函数。

步骤1:在布局文件中添加WebView

首先,在你的Activity的布局XML文件中添加WebView组件。

步骤2:配置WebView设置

在对应的Activity或Fragment中,初始化WebView并设置必要的配置,比如开启JavaScript支持。

import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebViewInteractionActivity extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view_interaction);

        webView = findViewById(R.id.webview);

         // 设置WebSettings 
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);  // 开启JavaScript支持 

         // 设置WebViewClient和WebChromeClient 
        webView.setWebViewClient(new WebViewClient());
        webView.setWebChromeClient(new WebChromeClient());

         // 加载网页 
        webView.loadUrl("file:///android_asset/index.html");  // 假设HTML文件位于assets目录下 
    }
}
步骤3:添加JavaScript接口

为了实现Java与JavaScript的交互,你需要在WebView中添加一个JavaScript接口。这个接口定义了Java端可以被JavaScript调用的方法。

// 在Activity的onCreate方法之后添加如下代码 
webView.addJavascriptInterface(new WebAppInterface(this), "Android");

其中,WebAppInterface是一个实现了你希望暴露给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();
    }
}

注意在方法前加上@JavascriptInterface注解,这是出于安全考虑,确保只有明确标记的方法才能被JavaScript访问。

步骤4:在JavaScript中调用Java方法

在你的HTML文件中,可以调用刚才定义的Java方法。例如,在index.html中:

html>Android与JavaScript交互示例 h1> 
 
 点击调用Android函数 button> 
 
 function callAndroidFunction(msg) {     Android.showToast(msg);  // 调用Android端的showToast方法 } script> body> html>
 
 
步骤5:从Java调用JavaScript

如果你需要从Java代码中调用JavaScript函数,可以使用loadUrl方法,传入JavaScript代码。

webView.loadUrl("javascript:yourJavaScriptFunction('Hello from Java')");

确保你的JavaScript函数已经定义并且可在当前页面上下文中访问。

以上就是Android应用中WebView与JavaScript交互的基本示例,通过这种方式,你可以实现丰富的交互功能,比如调用原生功能、传递数据等。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“新能源车普遍偏大一点,我停在车位上,左右车门都不能打得特别开,有时候人都出不去……”最近不少车主感叹:停车位缩水了?

“新能源车普遍偏大一点,我停在车位上,左右车门都不能打得特别开,有时候人都出不去……”最近不少车主感叹:停车位缩水了?

都市快报橙柿互动
2026-05-12 15:26:35
伊朗官员:若伊再次遭袭或将铀浓缩丰度提升至90%

伊朗官员:若伊再次遭袭或将铀浓缩丰度提升至90%

新华社
2026-05-12 14:58:17
14岁送上北野武的床,17岁拍写真,被操控半生,年过50仍风韵犹存

14岁送上北野武的床,17岁拍写真,被操控半生,年过50仍风韵犹存

飘飘然的娱乐汇
2026-05-11 20:05:06
太神奇了!场场三分命中率五成以上,苦熬七年,终于能拿亿元合同

太神奇了!场场三分命中率五成以上,苦熬七年,终于能拿亿元合同

球毛鬼胎
2026-05-12 21:38:02
为什么不能用手触摸逝者遗体?入殓师:不是迷信,就算亲人也不行

为什么不能用手触摸逝者遗体?入殓师:不是迷信,就算亲人也不行

千秋文化
2026-05-12 20:19:19
惊悚现场!飞机撞进居民楼!多人死伤,市长儿子当场殒命!太惨了

惊悚现场!飞机撞进居民楼!多人死伤,市长儿子当场殒命!太惨了

北国向锡安
2026-05-12 08:33:47
东契奇:无法帮助球队让我非常沮丧,如果可以打我100%会上场

东契奇:无法帮助球队让我非常沮丧,如果可以打我100%会上场

懂球帝
2026-05-12 14:38:08
朱丹自曝痛到当场求饶!要求立即终止,称“不要钱也要结束”

朱丹自曝痛到当场求饶!要求立即终止,称“不要钱也要结束”

鲁中晨报
2026-05-11 15:42:15
太猛了!上海大学苏院长Nature子刊论文,涉嫌数据造假,又被举报

太猛了!上海大学苏院长Nature子刊论文,涉嫌数据造假,又被举报

东东趣谈
2026-05-12 17:27:39
阔腿裤彻底失宠了,今年流行的是“豆角裤”,洋气百搭还显腿直

阔腿裤彻底失宠了,今年流行的是“豆角裤”,洋气百搭还显腿直

去山野间追风
2026-05-12 18:09:09
安徽一副县长,主动投案!另有多人被通报

安徽一副县长,主动投案!另有多人被通报

凤凰网安徽
2026-05-12 17:17:35
卫健委已将左氧氟沙星列为重点监控药!医生:服用千万注意7点

卫健委已将左氧氟沙星列为重点监控药!医生:服用千万注意7点

健康科普365
2026-05-10 18:45:06
47岁资本大佬戴学斌,涉嫌刑事犯罪被拘!旗下蓝润系曾坐拥超千亿元资产,知情人:去年就已有风声

47岁资本大佬戴学斌,涉嫌刑事犯罪被拘!旗下蓝润系曾坐拥超千亿元资产,知情人:去年就已有风声

每日经济新闻
2026-05-12 11:24:13
卢比奥来不了中国了?不是中国不让他进,是他根本不配进!

卢比奥来不了中国了?不是中国不让他进,是他根本不配进!

叹为观止易
2026-05-12 00:34:15
记者:穆里尼奥即将出任皇马新帅,预计下周官宣

记者:穆里尼奥即将出任皇马新帅,预计下周官宣

懂球帝
2026-05-12 18:41:07
太嚣张!日本公然发射进攻导弹,中方不再容忍,直接亮剑反击

太嚣张!日本公然发射进攻导弹,中方不再容忍,直接亮剑反击

观察者小海风
2026-05-11 11:35:37
摊牌了?孙颖莎逆转日本名将后,日本教练的一个动作耐人寻味

摊牌了?孙颖莎逆转日本名将后,日本教练的一个动作耐人寻味

顺静自然
2026-05-12 03:07:11
上海人的10条规矩,外地人看完沉默了

上海人的10条规矩,外地人看完沉默了

朗威谈星座
2026-05-12 17:23:14
土方竟是华夏失落的强敌?考古挖出恐怖真相,改写商周历史!

土方竟是华夏失落的强敌?考古挖出恐怖真相,改写商周历史!

优趣纪史记
2026-05-12 18:56:52
梅根王妃真是个狠人,每天花4小时拉直头发,只为掩盖非裔特征

梅根王妃真是个狠人,每天花4小时拉直头发,只为掩盖非裔特征

红袖说事
2026-05-11 16:22:21
2026-05-12 22:11:00
君伟说
君伟说
分享职场故事
427文章数 48关注度
往期回顾 全部

科技要闻

宇树发布载人变形机甲,定价390万元起

头条要闻

新电动车到手不足一月频繁自动锁死 老人被摔伤五六次

头条要闻

新电动车到手不足一月频繁自动锁死 老人被摔伤五六次

体育要闻

总是掉链子的“倒霉蛋”,闯进了欧战决赛

娱乐要闻

白鹿风波升级!掉粉20万评论区沦陷

财经要闻

黄仁勋真是被白宫彻底封杀了

汽车要闻

吉利银河“TT”申报图曝光 电动尾翼+激光雷达

态度原创

时尚
本地
手机
教育
数码

穿极简风的夏天,是真高级!

本地新闻

用苏绣的方式,打开江西婺源

手机要闻

水冷透明机身+真全面屏!红魔 11S Pro+图赏

教育要闻

想进深圳体制内的中小学校?看完这3092人名单,我劝你先考研

数码要闻

绿联推出“AP16”16英寸便携屏:2.5K 165Hz +扬声器,1799元

无障碍浏览 进入关怀版