gpt4 book ai didi

javascript - 自动填写WebView android中的字段

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

我想用这段代码填写字段,但它给我错误

Account[] accounts = AccountManager.get(this).getAccounts();
for (Account account : accounts) {
// TODO: Check possibleEmail against an email regex or treat
// account.name as an email address only for certain account.type values.


String possibleEmail = account.name;



myWebView.setWebViewClient(new HelloWebViewClient());

setTitleColor(Color.GRAY); //the title bar color
myWebView.loadUrl("http://m.gmail.com");
myWebView.loadUrl("javascript: {document.getElementById('id_email').value ='"+possibleEmail+"'};");


}

它给我这个错误

05-02 20:28:24.191:E/Web 控制台 (1402):未捕获类型错误:无法在 :1 处设置 null 的属性“值”

谢谢你的帮助

最佳答案

loadURL 是异步的;换句话说,调用 loadUrl 会启动 HTTP 请求,但会在文档下载和呈现之前立即返回。您看到的错误是因为您试图过早地执行 javascript(在下载、解析和呈现文档之前)。

您需要使用 WebViewClient ,并在执行 javascript 之前等待页面完成加载。尝试 onPageFinished 回调,但要小心,有时您会因为 iFrame 等原因获得多个回调。

希望对您有所帮助。

编辑如果您的目标是 KITKAT 及更高版本,那么您还必须根据 android 版本来考虑使用哪种方法。以下代码给出了更好的解释:

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
webView.evaluateJavascript(yourScript, null);
}
else
{
webView.loadUrl(yourScript);

}

关于javascript - 自动填写WebView android中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423651/

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