相关疑难解决方法(0)

Android在WebView中调用JavaScript函数

我试图将一些javascript函数调用在一个html页面中运行android webview.很简单,什么代码尝试下面的事情-从Android应用程序,调用一个javascript带有测试消息,它依次调用Java函数回,在Android应用程序,通过敬酒显示测试消息功能.

javascript功能如下:

function testEcho(message){
     window.JSInterface.doEchoTest(message);
}
Run Code Online (Sandbox Code Playgroud)

从WebView,我试着javascript通过以下方式调用,没有运气:

myWebView.loadUrl("javascript:testEcho(Hello World!)");
mWebView.loadUrl("javascript:(function () { " + "testEcho(Hello World!);" + "})()");
Run Code Online (Sandbox Code Playgroud)

我确实启用javascriptWebView

myWebView.getSettings().setJavaScriptEnabled(true);
// register class containing methods to be exposed to JavaScript
myWebView.addJavascriptInterface(myJSInterface, "JSInterface"); 
Run Code Online (Sandbox Code Playgroud)

并且继承了Java班级

public class JSInterface{

private WebView mAppView;
public JSInterface  (WebView appView) {
        this.mAppView = appView;
    }

    public void doEchoTest(String echo){
        Toast toast = Toast.makeText(mAppView.getContext(), echo, Toast.LENGTH_SHORT);
        toast.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

我花了很多时间在谷歌上搜索我可能做错了什么.我发现的所有例子都使用这种方法.有没有人在这里看错了? …

javascript android webview

234
推荐指数
7
解决办法
26万
查看次数

在Android运行时中访问浏览器的DOM内容

假设我们有一个标准的登录页面,如下所示:

在此处输入图片说明

我们可以像这样使用using 或plain中的HTML元素:DOMjQueryJavaScript

在此处输入图片说明

换句话说,获取元素在网页中的像素位置的方法非常简单,方法是使用element.getBoundingClientRect()

var rect = element.getBoundingClientRect();
console.log(rect.top, rect.right, rect.bottom, rect.left);
Run Code Online (Sandbox Code Playgroud)

因此,我们可以从控制台或通过网络应用程序以编程方式进行操作。

现在,假设我们随时都有一个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 …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery android dom

8
推荐指数
1
解决办法
282
查看次数

标签 统计

android ×2

javascript ×2

dom ×1

html ×1

jquery ×1

webview ×1