2016-06-14 2 views
0

광산에서 WKWebView를 사용하고 있습니다. 앱 전송 보안을 통해 임의의로드를 허용 할 때에도 다양한 링크를 클릭 할 수 없음을 발견했습니다. 예를 들어 다른 공급 업체의 모든 Adsense 콘텐츠 및 광고를 클릭해도 아무런 효과가 없습니다. WebView는 어떤 진행 상황도 반환하지 않습니다.WKWebView에서 광고를 클릭 할 수 없습니다.

또한 iTunes 링크 (예 : App Store 배지)를 클릭하면 App Store 응용 프로그램으로 리디렉션되지 않습니다. WebView는 진행 상황을 등록하지만 초기 페이지를 떠나지는 않습니다.

또 다른 예 : Pinterest 응용 프로그램에서 특정 핀을 열 것인지 묻는 Pinterest 홈페이지의 배지를 클릭하면 bnc.it URL 만로드되고 빈 페이지가 표시됩니다.이 페이지는 Pinterest.com 사이의 중개자로 가정됩니다 및 Pinterest 아이폰 응용 프로그램.

이러한 모든 요청을 처리하기 위해 WKWebView를받는 방법을 아는 분이라면 어떻게해야할까요?

+0

미안하지만 이런 생각이 들지만, 아무도 아이디어가 있다면 궁금해합니다. –

답변

1

오케이. 나는 그것이 어떻게 작동하는지 알았다. 문제는 navigationType에 관한 것입니다. 나는 그 일을하기 위해 다음 대표를 사용했다. 나는 내 애플 리케이션과 테스트를 거쳤습니다 아마도 그것은 작동합니다. 애드 센스 광고 만 사파리를 엽니 다.

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { 
     let requestedURL = navigationAction.request.url 

     if navigationAction.navigationType == .linkActivated{ 
      print("You have clicked the requested URL \(requestedURL)") 
      if requestedURL?.absoluteString.contains("doubleclick.net") == true{ 
       UIApplication.shared.open(requestedURL!, options: [:], completionHandler: nil) 
       decisionHandler(.cancel) 
      } 
     } 
     decisionHandler(.allow) 
    } 

은 물론, 당신은 당신이 나 또한 내 Github에서에서 전체 단순화 된 소스 코드를 삽입 한

webView.uiDelegate = self 
webView.navigationDelegate = self 

을 선언했는지 확인해야합니다.

https://github.com/babyghost666/WKWebViewAdsense

대체 자유롭게 당신이 WKWebView을 원하는 경우

UIApplication.shared.open(requestedURL!, options: [:], completionHandler: nil) 

이 후 다른 일을 할 : 당신이 무슨 뜻인지 모르는 경우 다음 주소에서 다운로드 자유롭게 사용자가 애드 센스를 클릭했습니다. 이 대답이 도움이된다면. 투표를하고 동의하십시오. 감사.

+0

감사합니다. 이것은 작동하는 것처럼 보입니다! –

+0

귀하를 환영합니다.^포인트를 얻을 수 있도록 투표 버튼을 클릭 하시겠습니까? – babyghost

관련 문제