0

我正在尝试在 Android 4.4 中使用新的 evaluateJavascript 方法,但是当我尝试评估此 javascript 代码时

browser.evaluateJavascript("(function() { document.getElementById('login').value='"+username+"'; document.getElementById('password').value='"+password+"'; document.getElementsByTagName('input')[2].click(); return '';})();",new ValueCallback<String>() {
    @Override public void onReceiveValue(String s) {

    } 
});

应用程序崩溃返回:

Fatal signal 6 (SIGABRT) at 0x00006225 (code=-6), thread 25125

javascript代码是正确的,因为使用旧方法

browser.loadUrl("javascript:(function() { ...

有用。

做一些测试,我发现问题是何时执行该功能

 document.getElementsByTagName('input')[2].click();

输入是一个提交按钮,它发送一个表单。

我该如何填写表格并发送?

4

1 回答 1

0

根据chrome javascript 控制台中的触发器表单提交问题,在表单上调用可能更简单submit()。我已经尝试重现您的问题,但没有崩溃 -click()在提交按钮和submit()表单上都使用对我来说效果很好。

SIGABRT不过看起来很糟糕,你是从 UI 线程调用 API 吗?如果没有,请先尝试。如果它是从 UI 线程调用的,那么您绝对应该在 Android Open Source Project Issue Tracker上提交一个错误。理想情况下,您应该在崩溃后立即包含 adb bugreport 的输出以及演示该问题的示例应用程序。

于 2013-11-14T12:06:13.453 回答