JavaScript и WebKit на iOS - PullRequest
       2

JavaScript и WebKit на iOS

0 голосов
/ 05 мая 2020

Я пытаюсь преобразовать код 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.

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...