Y.S*_*Y.S 8 html javascript jquery android dom
假设我们有一个标准的登录页面,如下所示:
我们可以像这样使用using 或plain中的HTML
元素:DOM
jQuery
JavaScript
换句话说,获取元素在网页中的像素位置的方法非常简单,方法是使用element.getBoundingClientRect()
:
Run Code Online (Sandbox Code Playgroud)var rect = element.getBoundingClientRect(); console.log(rect.top, rect.right, rect.bottom, rect.left);
因此,我们可以从控制台或通过网络应用程序以编程方式进行操作。
现在,假设我们随时都有一个Android浏览器(Chrome / Mozilla / WebView)。我可以URL
在浏览器中检索网页的。在这种情况下:
https://login.microsoftonline.com/
所以我的问题是,给定登录页面的URL,我如何类似地获得对上相同输入字段的访问权限Android browser
?
我需要能够HTML
在Android浏览器中访问网页的元素,并计算其像素位置。作为输入,我具有任何Android浏览器中的网页URL。
我说的是在Android运行时中通过Android应用执行此操作,即以编程方式使用Java / JS代码。
如果有人需要DOM
页面的结构为文本,则可以使用以下(Java
)代码以编程方式获取它:
URL url;
HttpURLConnection urlConnection;
String DOMContent = null;
try {
url = new URL("https://login.microsoftonline.com/");
urlConnection = (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK){
DOMContent = readStream(urlConnection.getInputStream());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我需要HTML
在Android运行时中访问移动网页的元素,就像在Web应用程序或桌面浏览器中的扩展程序中一样。换句话说,我需要能够从Android应用访问/操纵移动浏览器的DOM内容。
如何才能做到这一点?
更新:
JavaScriptBridge
看起来很有希望。DocumentBuilder
可以帮助我们将DOM转换为Java对象,然后可以从Android本机进行访问/操作。
参考文献:
3. 如何在Android的后台服务中运行Javascript代码
4. 有什么方法可以在Android的WebView中访问DOM结构?
6. 在Android Webview中,我可以修改网页的DOM吗?
7. Android WebViews和JavaScript到Java的桥梁
页面加载后使用以下代码(实现自定义WebViewClient
并检查onPageFinished
)
String query = "document.getElementById(\"WhateverElement\").getBoundingClientRect();"
webView.evaluateJavascript(query, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
Log.d("LogName", s); // s has the getBoundingClientRect
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
282 次 |
最近记录: |