2015-08-12 5 views
2

Я реализовал принятые решения here, и он работает для некоторых веб-сайтов. Например, зайдите на сайт www.tomcruise.com и нажмите на его прицепы. Каждая из этих ссылок имеет target = "_ blank" и начинает открываться после реализации решения, предложенного в ранее связанном столбце переполнения.WKWebView не открывается НЕКОТОРЫЕ target = "_ blank" ссылки

Но теперь я обнаружил, что если мы идем к here и нажмите на любую ссылку (один я пытался, как и писать этот вопрос, имеет HREF тег, как показано ниже

<a rel="nofollow" target="_blank" href="http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082" class="ot-anchor aaTEdf" jslog="10929; track:click" dir="ltr">http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082</a> 

При нажатии на эту ссылку изнутри WKWebView, метод WKUIDelegate ниже, действительно дозвонились, но имеет navigationAction.request не = «» и, следовательно, ничего не происходит, когда webView.loadRequest («») вызывается. Любое другое лицо этот вопрос?

optional func webView(_ webView: WKWebView, createWebViewWithConfiguration configuration: WKWebViewConfiguration, 
     forNavigationAction navigationAction: WKNavigationAction, 
      windowFeatures windowFeatures: WKWindowFeatures) -> WKWebView?{ 
     if navigationAction.targetFrame == nil { 
      webView.loadRequest(navigationAction.request) 
     } 

     return nil 
} 
  • W шляпа особенно относится к указанному выше тегу href, который вызывает метод WKUIDelegate с пустым URL-адресом?
  • Как мы исправим эту проблему? Дайте мне знать, как вы корень вызвали проблему, поскольку меня тоже интересует отладка.
+0

Для меня используются решения, которые вы использовали. Также для страницы google plus, к которой вы привязаны .. теперь ссылка для журнала также работает для меня – pjc90

ответ

1

Я надеялся, что смогу его решить, используя методы делегата WKWebView, но я не мог понять это.

Так что я пошел к решению этой UIWebView эры на запуск яваскрипта функции после завершения веб-страницы загрузки

func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) { 
    let jsCode = "var allLinks = document.getElementsByTagName('a');if (allLinks) { var i;for (i=0; i<allLinks.length; i++) {var link = allLinks[i];var target = link.getAttribute('target');if (target && target == '_blank') {link.setAttribute('target','_self');} } }" 
    webView.evaluateJavaScript(jsCode, completionHandler: nil) 
} 

Это зафиксировало вопрос, где нажав на ссылку в любом Google Plus Сообщений страница была в результате пустой страница не загружается


UPDATE на Nov 3 2015: явление объясняется в вопросе, больше не происходит для меня в Swift 2.0 код. Итак, вы должны иметь возможность использовать представленное решение here для всех ваших целей

Смежные вопросы