博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webview与壳交互的几种方式
阅读量:5025 次
发布时间:2019-06-12

本文共 1127 字,大约阅读时间需要 3 分钟。

1.js调用android中的方法

(1)通过addJavascriptInterface通信

android中webview增加addJavascriptInterface的方法,

webView.addJavascriptInterface(new JavaScriptInterface(),"Demo");

对JavaScriptInterface实现构造函数,增加方法,js可以直接采用命名空间的方式,调用定义的方法。

final class JavaScriptInterface{        JavaScriptInterface(){        }        //注意:17+版本,必须申明注解        @JavascriptInterface        public void clickOnAndroid() {            mHandler.post(new Runnable() {                public void run() {                    webView.loadUrl("javascript:wave()");                }            });        }    }

html中可以直接通过window.Demo.clickOnAndroid调用android中的方法。

(2)通过window.location(url)

url可以做一个接口定义,比如url=open?title=1&name=2&callback

定义一个方法,加参数,回调函数。

android在MyWebViewClient中的shouldOverrideUrlLoading方法会进行拦截。

在此方法中可以对url进行解析,触发相应的接口方法,达到了js调用android方法,对壳做一些交互处理。

=====

分析:

js调用android或者ios中的方法,建议采用window.location的方式,统一定义一套接口,采用相同的url进行解析。这样,在前端js处理时就无需为android、ios各自做判断,定义不同的调用机制,通用性也比较强。

2.android中调用js的方法

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

html中有个function wave(){}方法,通过该方式可以直接调用wave()。

通过这种模式,js中的方法都是暴露在window最顶级的对象上的。

 

转载于:https://www.cnblogs.com/shiqudou/p/3955029.html

你可能感兴趣的文章
Java重写《C经典100题》 --27
查看>>
PHP 的 HMAC_SHA1算法 实现
查看>>
ASP.NET MVC 3–Global Action Filters
查看>>
图像切割之(一)概述
查看>>
JAVA修饰符类型(public,protected,private,friendly)
查看>>
flex利用webservice上传照片
查看>>
IOS开发之Bug--使用KVC的易错情况
查看>>
python list和tuple
查看>>
基础薄弱的反思
查看>>
ORACLE增删改查以及case when的基本用法
查看>>
[转]oracle10客户端PL/SQL Developer如何连接远程服务器上的oracle数据库
查看>>
HTML5 表单元素和属性
查看>>
使用SpringSocial开发QQ登录
查看>>
好玩的游戏
查看>>
2.6. Statistical Models, Supervised Learning and Function Approximation
查看>>
代码说明call和apply方法的区别 (咱们这方面讲解的少,这样的题有变式,需要举例讲解一下)...
查看>>
T-SQL 类型转换
查看>>
在eclipse中设计BPMN 2.0工作流定义的根本步骤
查看>>
Json对象与Json字符串互转(4种转换方式)
查看>>
PAT甲级1002 链表实现方法
查看>>