android开发小技巧(6)android接受webview中的js传值

本文介绍如何在Android WebView中实现自定义的网页返回按钮功能,通过JavaScript与Java的交互来确保用户点击返回按钮时能正确回到上一页而非直接退出应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在android开发中,有时候为了节省时间,可以使用网页做成的页面,集成到app中。这就牵扯到一个问题。我用自定义的webview显示网页之后,如何接受到网页的参数退出这个个页面。因为你如果不在网页上处理好这个问题,你在网页中跳转之后再按android手机里面的返回键就会退出此activity,并不是我们要的返回到上一个页面。那怎么解决这个问题呢。看下面的代码:

网页中的

<div data-role="header" data-position="fixed" role="banner" class="ui-header ui-bar-inherit ui-header-fixed slidedown">
            <a href="javascript:window.someThing.setSmething('back')" data-role="button" role="button">返回</a>
            <h1 class="ui-title" role="heading" aria-level="1">民生服务</h1>
        </div>


这是个在网页中定义的一个div层,功能就是处理button点击事件,也就是app中的返回事件。注意红色字体,最关键的代码是这一行。把他添加到需要定义返回按钮的地方就可以了。然后再来看看app中如何处理。

android中:

WebView  myView = (WebView) findViewById(R.id.webview); //获取到webview这个控件,其他的功能我就不说了,需要啥自己添功能。

@JavascriptInterface 
public void setSmething(String some) {

if (some.equals("back")) {
// Intent myint = new Intent();
// myint.setClass(ActivityWebBrowser.this, MainActivity2.class);
// startActivity(myint);处理自己接受到参数之后的操作
ActivityWebBrowserB.this.finish();
}
}

这样就可以了。再说一下android4.2及以上版本使用此方法不能够正常接受到参数的原因:Android4.2 以前WebView 提供了javascript 调用Java代码的方法,会造成很大的安全漏洞。Android官方在API17后,限制javascript代码只能调用声明了@JavascriptInterface 注解的Java方法。所以你必须要给每个可供js代码调用的Java方法加一个@JavascriptInterface接口。当然了,android4.2以下的就没必要了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值