Guest User

Geforce now WKWebView

a guest
Aug 19th, 2020
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.51 KB | None | 0 0
  1. import UIKit
  2. import WebKit
  3.  
  4. class ViewController: UIViewController {
  5.    
  6.     var webView: WKWebView!
  7.     var popupWebView: WKWebView!
  8.    
  9.     let userAgent = "Mozilla/5.0 (X11; CrOS x86_64 13099.19.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.33 Safari/537.36"
  10.    
  11.     override func viewDidLoad() {
  12.         super.viewDidLoad()
  13.         setupWebView()
  14.         loadWebView()
  15.     }
  16.    
  17.     func loadWebView() {
  18.         if let url = URL(string: "https://play.geforcenow.com/") {
  19.             let urlRequest = URLRequest(url: url)
  20.             webView.load(urlRequest)
  21.         }
  22.     }
  23.    
  24.     func setupWebView() {
  25.         let preferences = WKPreferences()
  26.         preferences.javaScriptEnabled = true
  27.         preferences.javaScriptCanOpenWindowsAutomatically = true
  28.        
  29.         let configuration = WKWebViewConfiguration()
  30.         configuration.preferences = preferences
  31.        
  32.         webView = WKWebView(frame: view.bounds, configuration: configuration)
  33.         webView.customUserAgent = userAgent
  34.         webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
  35.         webView.uiDelegate = self
  36.         webView.navigationDelegate = self
  37.        
  38.         view.addSubview(webView)
  39.     }
  40.    
  41. }
  42.  
  43. extension ViewController: WKUIDelegate, WKNavigationDelegate {
  44.     //MARK: Creating new webView for popup
  45.     func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
  46.        
  47.         popupWebView = WKWebView(frame: view.bounds, configuration: configuration)
  48.         popupWebView!.customUserAgent = userAgent
  49.         popupWebView!.autoresizingMask = [.flexibleWidth, .flexibleHeight]
  50.         popupWebView!.navigationDelegate = self
  51.         popupWebView!.uiDelegate = self
  52.        
  53.         let closeButton = UIButton(type: .close)
  54.         closeButton.frame = CGRect(x: view.bounds.width - 66, y: 16, width: 50, height: 50)
  55.         closeButton.addTarget(self, action: #selector(closeTapped), for: .touchUpInside)
  56.        
  57.         popupWebView.addSubview(closeButton)
  58.        
  59.         view.addSubview(popupWebView!)
  60.         return popupWebView!
  61.     }
  62.     //MARK: To close popup
  63.     func webViewDidClose(_ webView: WKWebView) {
  64.         if webView == popupWebView {
  65.             popupWebView?.removeFromSuperview()
  66.             popupWebView = nil
  67.         }
  68.     }
  69.    
  70.     @objc func closeTapped(sender: Any) {
  71.         webViewDidClose(popupWebView)
  72.     }
  73. }
  74.  
Add Comment
Please, Sign In to add comment