Android-webview和js脚本语言交互的时候怎么获取js方法的返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-webview和js脚本语言交互的时候怎么获取js方法的返回值相关的知识,希望对你有一定的参考价值。

方法:

1、通过webview访问js脚本

2、js脚本再调用webview中的java函数把结果返回

示例代码:

通过本地的webview打开脚本页面。

调用步骤

1、设置webview支持脚本

webSettings.setjavascriptEnabled(true);

2、打开脚本页面

mWebView.loadUrl("file:///android_asset/demo.html");//这里打开该app的asset目录下的demo.html,里面含有wave函数脚本

3、调用脚本

mWebView.loadUrl("javascript:wave()");//调用打开页面中的wave函数

4、webview中建立js能够访问

 mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");//js可以通过demo访问到DemoJavaScriptInterface 类中的方法。
 final class DemoJavaScriptInterface 
        DemoJavaScriptInterface() 
        
        public void clickOnAndroid(String result) 
             System.out.prinltn("返回的结果"+result);           
        
    

5、js访问webview方法

<script language="javascript">
        function wave() 
            alert("1");
            window.demo.clickOnAndroid('结果1');//返回结果,调用java方法
        
    </script>

参考技术A 您好,很高兴能帮助您
Android中webview和js之间的交互
1.android中利用webview调用网页上的js代码。
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2. 网页上调用android中java代码的方法
在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(new Object()
public void clickOnAndroid()
mHandler.post(new Runnable()
public void run()
Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();

);

, "demo");
在网页中,只需要像调用js方法一样,进行调用就可以
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
3. Java代码调用js并传参
首先需要带参数的js函数,如function test(str),然后只需在调用js时传入参数即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中调用java函数并传参
首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:
mWebView.addJavascriptInterface(new Object()
public void clickOnAndroid(final int i)
mHandler.post(new Runnable()
public void run()
int j = i;
j++;
Toast.makeText(Test.this, "测试调用java" + String.valueOf(j), Toast.LENGTH_LONG).show();

);

, "demo");
然后在html页面中,利用如下代码<div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>,
即可实现调用

你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,本回答被提问者和网友采纳

js基础

JavaScript基础

为什么要学?

减轻服务器压力

什么是JavaScript?

JavaScript是一种基于对象和事件驱动的、并具有安全性能的脚本语言

JavaScript特点

向HTML页面中添加交互行为

脚本语言,语法和Java类似

解释性语言,边执行边解释

JavaScript组成

ECMAScript DOM BOM

JavaScript的基本结构

语法:<script type="text/javascript">

? <!—

? JavaScript 语句;

? —>

</script >

应用:

<title>初学JavaScript</title>

</head>

<body>

<script type="text/javascript">

? document.write("初学JavaScript");

? document.write("<h1>Hello,JavaScript</h1>");

</script>

</body>

</html>

<script></script>可以包含在文档中的任何地方,只要保证这些代码在被使用前已读取并加载到内存即可

使用<script>标签

外部JS文件

<script src="export.js" type="text/javascript"></script>

直接在HTML标签中

<input name="btn"type="button" value="弹出消息框"

onclick="javascript:alert(‘欢迎你‘);"/>

核心语法-变量

先声明变量再赋值

var width;

width= 5;

同时声明和赋值变量

var catName= "皮皮";

var x, y, z = 10;

不声明直接赋值

 

核心语法-数据类型

数据类型

undefined

null

number

boolean

string

核心语法— typeof运算符

typeof检测变量的返回值

typeof运算符返回值如下

? undefined:变量被声明后,但未被赋值

? string:用单引号或双引号来声明的字符串

? boolean:true或false

? number:整数或浮点数

? object:javascript中的对象、数组和null

核心语法—String对象

属性

? 字符串对象.length

? 方法

? 字符串对象.方法名();

var str="this is JavaScript";

var strLength=str.length; //长度是18

方法名称说 明
charAt(index) 返回在指定位置的字符
indexOf(str,index) 查找某个指定的字符串在字符串中首次出现的位置
substring(index1,index2) 返回位于指定索引index1和index2之间的字符串,并且包括索引index1对应的字符,不包括索引index2对应的字符
split(str) 将字符串分割为字符串数组

核心语法—数组

创建数组

为数组元素赋值

访问数组

数组的常用属性和方法

类别名称描述
属性 length 设置或返回数组中元素的数目
方法 join( ) 把数组的所有元素放入一个字符串,通过一个的分隔符进行分隔
sort() 对数组排序  
push() 向数组末尾添加一个或更多 元素,并返回新的长度  

核心语法—运算符号

类型运算符
算术运算符 + - * / % ++ —
赋值运算符 = += -=
比较运算符 > < >= <= == != === !==
逻辑运算符 && || !

核心语法—逻辑控制语句

if条件语句

switch多分支语句

for、while循环语句

for-in

核心语法—循环中断

break;

continue;

核心语法—注释

单行注释以//开始,以行末结束

多行注释以

/* 开始,以*/ 结束,符号/*…… */ 指示中间的语句是该程序中的注释

核心语法—常用的输入/输出

alert()

 

prompt()

 

 

核心语法—语法约定

代码区分大小写

变量、对象和函数的名称

分号

 

程序调试

Chrome开发人员工具

? 停止断点调试

? 单步调试,不进入函数体内部

? 单步调试,进入函数体内部

? 跳出当前函数

? 禁用所有的断点,不做任何调试

alert()方法

什么是函数

函数的含义:类似于Java中的方法,是完成特定任务的代码语句块

使用更简单:不用定义属于某个类,直接使用

函数分类:系统函数和自定义函数

常用系统函数

parseInt ("字符串")

? 将字符串转换为整型数字

? 如: parseInt ("86")将字符串“86“转换为整型值86

parseFloat("字符串")

? 将字符串转换为浮点型数字

? 如: parseFloat("34.45")将字符串“34.45“转换为浮点值34.45

isNaN()

? 用于检查其参数是否是非数字

自定义函数

定义函数

调用函数

有参无参函数

 

变量的作用域

全局变量

局部变量

事件

名称说明
onload 一个页面或一幅图像完成加载
onclick 鼠标单击某个对象
onmouseover 鼠标指导移到某元素上
onkeydown 某个键盘按键被按下
onchange 域的内容被改变

以上是关于Android-webview和js脚本语言交互的时候怎么获取js方法的返回值的主要内容,如果未能解决你的问题,请参考以下文章

JS入门基础

Android-WebView中加载本地html的方法

9.12上午 JS脚本语言

21JavaScript笔记

js基本语法总结

js基础