我在解析WebView HTML或加载URL(相对或绝对)方面没有任何问题,但我对如何以编程方式“模拟”输入用户名和用户的用户感到困惑。密码,然后单击提交/登录按钮,给出以下HTML:
<form method="post" class="mobile-login-form" id="login_form" action="https://www.example.com/login.php?m=m&refsrc=http%3A%2F%2Fm.example.com%2F&refid=0">
<input type="hidden" name="lsd" autocomplete="off">
<input type="hidden" name="post_form_id" value="1b3cf017c90d483cc50fcac3f2a9a283">
<input type="hidden" name="charset_test" value="€,´,€,´,?,?,?">
<input type="hidden" name="version" value="1">
<input type="hidden" id="ajax" name="ajax" value="1">
<input type="hidden" id="width" name="width" value="313">
<input type="hidden" id="pxr" name="pxr" value="1.5">
<input type="hidden" id="gps" name="gps" value="1">
<div class="bgx msf" data-sigil="intfs">
<div class="mfss fcg">Username:
</div>
<input class="input mobile-login-field" name="username" value="" type="text">
</div>
<div class="bgx msf" data-sigil="intfs">
<div class="mfss fcg">Password:
</div>
<input class="input mobile-login-field" autocorrect="off" autocapitalize="off" name="pass" type="password">
</div>
<div class="bgx msf" data-sigil="intfs">
<label class="btn btnC touchable" data-sigil="blocking-touchable">
<input type="submit" value="Log In" class="mfss" name="login">
</label>
</div>
</form>
(我不控制HTML,这只是一个任意网站提示的示例)
我不需要这样做,称为“静默身份验证” - 我只想为用户点击按钮提供一个方便的快捷方式,而不是重新输入用户名&amp;密码一遍又一遍(如果执行了clear cache
或clear data
)。
答案 0 :(得分:1)
您是否尝试过使用猴子工具?应该能够完成这项任务。
答案 1 :(得分:0)
在html页面中定义JS函数,并使用以下方法调用它。
private void callJavaScriptFunction(String functionName, List<String> params) {
String javaScript = "javascript:";
javaScript += functionName + " ( ";
if (params != null) {
for(int i = 0; i < params.size(); i++) {
javaScript += params.get(i);
if (i != params.size() - 1) {
javaScript += ", ";
}
}
}
javaScript += ");";
Log.d(javaScript);
webView.loadUrl(javaScript);
}