gpt4 book ai didi

javascript - 无法使用javascript在android webview中设置文本

转载 作者:行者123 更新时间:2023-11-28 18:49:23 25 4
gpt4 key购买 nike

我有一个具有以下设置的 WebView :

mView.getSettings().setLoadWithOverviewMode(true);
mView.getSettings().setUseWideViewPort(false);
mView.getSettings().setJavaScriptEnabled(true);
mView.getSettings().setAllowContentAccess(true);
mView.getSettings().setDomStorageEnabled(true);

加载网页后,当我尝试执行 Javascript 时:

mView.loadUrl("javascript:document.querySelector('input[type=password]').value ='" + password + "'");

打开一个新选项卡或窗口而不是设置密码字段的值

document.querySelector('input[type=password]')的输出(来自控制台):

<input type="password" name="userpassword" id="userpassword" maxlength="6" style="width: 128px; height: 18px">

我尝试从控制台执行相同的 JavaScript。它有效!

我还配置了 webviewclient:

mView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG, " shouldOverrideUrlLoading :" + url);
view.loadUrl(url);
return true;
}

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.d(TAG, "onPageStarted " + url);
}

@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}

public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Log.e(TAG, "Error: " + description);
}
});

最佳答案

loadUrl 方法,在 WebView 中加载提供的 URL。您所要做的就是执行 evaluateJavascript 方法。

webView.evaluateJavascript("document.querySelector('input[type=password]').value ='" + password + "'", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
/// This callback is called after a result is returned by the script.
}
});

关于javascript - 无法使用javascript在android webview中设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34739633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com