WebView Js与Android交互

提到WebView就会想到Hybrid混合开发,利用WebView加载 Html5页面。这种开发可以替代部分原生功能,灵活,开发周期短,而且不需要升级就可以在 ios 和安卓上动态更新。混合开发必然离不开Html5和Native的交互,下面来总结一下,Js与原生交互。

1.交互方式

1.Android调用 js 方法
Android 通过loadUrl() 和evaluateJavascript()这两种方法调用 JS函数:

webview.loadUrl(“javascript:FunJS()”)//这种方法效率低,需要刷新页面
// Android4.4以上使用效率比loadUrl高,不会刷新页面,在有返回值的时候使用此方法。
webview.evaluateJavascript(“javascript:FunJS()”,new ValueCallback() {
@Override
public void onReceiveValue(String value) {
//此处为 js 返回的结果
}){
}

2.js 调用 Android 方法

1.通过addJavascriptInterface()进行对象映射

WebView.addJavascriptInterface(new AndroidJs(), "androidjs");

AndroidJs是一个 java 对象,js 调用的 java 方法在此对象中,通过@JavascriptInterface注解定义。

public class AndroidJs{
     // 被JS调用的方法必须加入@JavascriptInterface注解
     //此方法无返回值,如果 js 需要返回值可以加上返回值 return
    @JavascriptInterface
    public void hello(String msg) {
        System.out.println("JS调用了Android的hello方法");
    }
}

2.使用shouldOverrideUrlLoading()方法拦截url,通过解析 url做相应的原生操作
3.通过onJsAlert()、onJsConfirm()、onJsPrompt()方法拦截JS对话框alert()、confirm()、prompt()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值