提问人:Shahnazi2002 提问时间:11/7/2023 更新时间:11/7/2023 访问量:41
如何在 Android 上的 Web 视图中自动填充特定字段?
How can I autofill specific fields in a webview on Android?
问:
我希望创建一个 Android 应用程序 (Kotlin),当单击按钮时,它会导航到网页,自动填充预定义值并执行登录操作。
我尝试按如下方式进行操作,但没有成功:
val webView = binding.webView
webView.settings.javaScriptEnabled = true
webView.webViewClient = WebViewClient()
val loginPage = "http://example.com/login"
webView.loadUrl(loginPage)
val username = "4000000000"
val password = "1234567890"
binding.loginButton.setOnClickListener {
val jsCode = """
document.querySelector('input[name="username"]').value = "$username";
document.querySelector('input[name="password"]').value = "$password";
document.querySelector('button[type="submit"]').click();
""".trimIndent()
webView.evaluateJavascript(jsCode, null)
我愿意通过单击按钮登录特定站点的不同方式。
答:
0赞
Codemaker2015
11/7/2023
#1
你能试试这样的东西吗?
import android.os.Bundle
import android.webkit.WebChromeClient
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webView)
webView.settings.javaScriptEnabled = true
val username = "your_username"
val password = "your_password"
val loginButton = findViewById(R.id.loginButton)
loginButton.setOnClickListener {
// Load the login page
webView.loadUrl("http://example.com/login")
}
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
// Inject JavaScript to autofill and submit the login form
val jsCode = """
document.querySelector('input[name="username"]').value = "$username";
document.querySelector('input[name="password"]').value = "$password";
document.querySelector('button[type="submit"]').click();
""".trimIndent()
webView.evaluateJavascript(jsCode, null)
}
}
}
}
评论