Я пытаюсь преобразовать код Android в устройства iOS и думаю о будущей совместимости между обоими и, возможно, Ma c OS X, я начал его с помощью WebKit.
Я правда у меня мало опыта работы с WebKit, поэтому я не понимаю, как применить Java Script в моем коде.
Может ли кто-нибудь помочь мне?
Тестовое приложение - простое браузер получает доступ к учетной записи Google, но с указанием домена для входа.
Мне нужно принудительно выполнить вход с этим c доменом.
view.loadUrl(
"javascript:(function f() {" +
"var email = document.getElementsByName('identifier');" +
"email[0].oninput = function(value) {" +
"if(!/^\\w+([\\.-]?\\w+)*(@)?((e(d(u(c)?)?)?)?|(s(t(u)?)?)?(\\.)?(u(s(\\.(e(d(u)?)?)?)?)?)?$/.test(email[0].value)){" +
"email[0].value = '';" +
"email.parentNode.parentNode.parentNode.insertAdjacentHTML('afterend', 'Only us.edu domain!');" +
"return false;" +
"}" +
"}" +
"})()");
}
Это отлично работает в Android apk, но Я не уверен, как реализовать это в Swift / WebKit.
Я пробовал использовать оценку JavaScript:
webView.evaluateJavaScript("(function f() { var email = document.getElementsByID('profileIdentifier').value; email[0].oninput = function(value) { if(!/^\\w+([\\.-]?\\w+)*(@)?((e(d(u(c)?)?)?)?|(s(t(u)?)?)?(\\.)?(u(s(\\.(e(d(u)?)?)?)?)?)?$/.test(email[0].value)){ email[0].value = ''; email.parentNode.parentNode.parentNode.insertAdjacentHTML('afterend', 'Only us.edu domain!'); return false; } } })()") { (result, error) in
if let result = result {
print("JSEmail R:", result)
} else if let error = error {
print("JSEmail E:", error)
}
}
Он открывает веб-сайт входа в Google, но у меня есть только сообщения об ошибках для коды сценария Java ...
JSEmail E: Error Domain = WKErrorDomain Code = 4 «Произошло исключение JavaScript» UserInfo = {WKJavaScriptExceptionLineNumber = 1, WKJavaScriptExceptionMessage = TypeError: document.getElementsByID это не забава ction. (В 'document.getElementsByID (' profileIdentifier ')', 'document.getElementsByID' не определено), WKJavaScriptExceptionColumnNumber = 53, WKJavaScriptExceptionSourceURL = https://www.google.com/a/us.edu/ServiceLogin?continue=https: //classroom.google.com/&passive=true, NSLocalizedDescription = Произошло JavaScript исключение}
Спасибо за любую помощь, чтобы лучше понять, как переместить этот Java код скрипта в Swift. Я написал код iOS в эпоху Objective- C, но теперь я просто новичок ie.
С уважением.