Пытаюсь реализовать авторизацию на http://spaces.ru через скрытый WebView
. Логин и пароль вставляются в текстовые поля, но при form.submit()
происходит какой-то глюк у WebView
и ничего не загружается. Что может быть не так?
class LoginActivity : AppCompatActivity() {
private lateinit var presenter: LoginPresenter
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
wv.settings.javaScriptEnabled = true
wv.settings.domStorageEnabled = true
wv.webChromeClient = WebChromeClient()
wv.webViewClient = LoginWebViewClient()
wv.loadUrl("https://spcs.me/registration/loginform/")
}
class LoginWebViewClient : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
view!!.webViewClient = WebViewClient()
view.loadUrl(
"javascript:(function() { " +
"var form = document.querySelector('div#main>div.widgets-group.widgets-group_top.nl.wbg>form.no_ajax');" +
"var loginField = form.querySelector('input[name=contact]');" +
"var passwordField = form.querySelector('input[name=password]');" +
"loginField.value = 'login';" +
"passwordField.value = 'password';" +
"form.submit();" +
"})()")
}
}
}
Сразу не подумал про вариант с кликом на кнопку входа. Вот так все работает:
var form = document.querySelector('div#main>div.widgets-group.widgets-group_top.nl.wbg>form.no_ajax');
var loginField = form.querySelector('input[name=contact]');
var passwordField = form.querySelector('input[name=password]');
var authButton = form.querySelector('button#cfms');
loginField.value = 'login';
passwordField.value = 'password';
authButton.click();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
помогите решить простую задачу, я вроде и сам решил но не понимаю что не правильно)
Класс Calculator имплементируется от ICalculator, где описаны все методы и их типы, стоит ли повторно это делать для параметров методов класса ? Если...
На данный вопрос уже ответили:
как сделать так, чтобы была проверка на то, что в url есть "?rid=1" например