android webview如何获取网页输出的提示信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android webview如何获取网页输出的提示信息相关的知识,希望对你有一定的参考价值。
RT,用webview框了一个网站的登录界面,如何在webview上用toast输出网页alert出的信息?比如“用户名错误”。
参考技术A 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>,
即可实现调用追问
是不是要在网页上做修改才行?没有修改网页的权限是不是就不能用你说的方法?
追答不用。。
本回答被提问者采纳AndroidViewClient 从 WebView 获取 id
【中文标题】AndroidViewClient 从 WebView 获取 id【英文标题】:AndroidViewClient get id's from WebView 【发布时间】:2018-06-09 07:21:47 【问题描述】:我有三星 Android 4.3 API 18 并使用 AndroidViewClient,转储只生成 android.webkit.WebView,因此无法获取此页面中的所有 id。 如何使用 Culebra 记录网页中的操作?
【问题讨论】:
【参考方案1】:page 显示了 WebView 中的元素是如何列出的。
要做到这一点,您必须使用带有culebra 后端的 AndroidViewClient,因为 uiautomator 生成的转储不包括它们。
【讨论】:
是的,我使用 Culebra 生成带有 webview 内坐标的动作,谢谢。以上是关于android webview如何获取网页输出的提示信息的主要内容,如果未能解决你的问题,请参考以下文章
Android中Http加载如何得到Cookie和 WebView 加载网页如何得到的Cookie
Android Studio的Java程序如何打开网页并获取返回值