Swift WKWebView ng-click проблема - PullRequest
       8

Swift WKWebView ng-click проблема

0 голосов
/ 17 октября 2018

Я работаю в мобильном веб-браузере для iOS, и все шло отлично, пока я не повредил стену под названием AngularJS ...

Мой WKWebview:

let config = WKWebViewConfiguration()
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
preferences.javaScriptCanOpenWindowsAutomatically = true
config.preferences = preferences
config.userContentController.addUserScript(script)     
config.allowsInlineMediaPlayback = true

self.webView = WKWebView(frame: <some frame>, configuration: config)
self.webView?.navigationDelegate = self
self.webView?.uiDelegate = self

Мойпроблема: на одном веб-сайте (вероятно, больше, но это единственный, который я нашел), у меня есть элемент <li> в меню:

<li class="animate-menu ng-scope" ng-repeat="service in models.menu" dnd-draggable="service" ng-if="service.url" ng-click="goToUrl('<some url>', 'dossier_etudiant', false)" id="dossier_etudiant" draggable="true" style>
    <i class="fa fa-address-card"></i>
    <span class="service-libelle ng-binding">Mon dossier étudiant</span>
    <p ng-click="goToUrl('<some url>', 'dossier_etudiant', false)" class="tooltip-service ng-binding">My student file</p>
</li>

В веб-браузере на рабочем столе, нажав наэта ссылка открывает новую вкладку about: blank, которая перезагружается по некоторому URL.

При нажатии на WKWebView следующий делегат вызывается, как и планировалось:

func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {

    if (navigationAction.targetFrame == nil) {
        print("Open in same tab, we don't really care at this point")
        self.webView?.load(navigationAction.request)   
    }
    return nil
}

ОДНАКО возвращаемое значение URL в navigationAction.request равно « about: blank », поэтому мой webView просто загружает пустую страницу каждый раз.

Любая идея, как получить правильный URL, который появляется послестраница "about: blank"?Я также попытался внедрить несколько JS в WKWebView, чтобы перехватить событие «click», но кажется, что оно не срабатывает при нажатии на тег <li>.

Спасибо за помощь.

...