Guest User

Untitled

a guest
Jan 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. import UIKit
  2. import WebKit
  3.  
  4. class ViewController: UIViewController, WKNavigationDelegate {
  5.  
  6. var webView: WKWebView
  7.  
  8. required init?(coder aDecoder: NSCoder) {
  9. let config = WKWebViewConfiguration()
  10. self.webView = WKWebView(frame: CGRectZero, configuration: config)
  11. super.init(coder: aDecoder)
  12. self.webView.navigationDelegate = self
  13. }
  14.  
  15. override func viewDidLoad() {
  16. super.viewDidLoad()
  17. // Do any additional setup after loading the view, typically from a nib.
  18.  
  19. view.insertSubview(webView, atIndex: 1)
  20. webView.translatesAutoresizingMaskIntoConstraints = false
  21. let height = NSLayoutConstraint(item: webView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1, constant: -44)
  22. let width = NSLayoutConstraint(item: webView, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 1, constant: 0)
  23. view.addConstraints([height, width])
  24.  
  25.  
  26. webView.loadRequest(NSURLRequest(URL:NSURL(string:"https://www.apple.com")!))
  27.  
  28.  
  29. }
  30.  
  31. override func didReceiveMemoryWarning() {
  32. super.didReceiveMemoryWarning()
  33. // Dispose of any resources that can be recreated.
  34. }
  35.  
  36. func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
  37.  
  38. if (navigationAction.navigationType == WKNavigationType.LinkActivated){
  39. print(navigationAction.request.URL?.relativeString)
  40. decisionHandler(WKNavigationActionPolicy.Cancel)
  41. }
  42. }
  43. }
  44.  
  45. func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
  46. if (navigationAction.navigationType == .LinkActivated){
  47. decisionHandler(.Cancel)
  48. } else {
  49. decisionHandler(.Allow)
  50. }
  51. }
  52.  
  53. func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
  54. if (custom condition){
  55. decisionHandler(XX) // if... return as well
  56. } else {
  57. decisionHandler(XX)
  58. }
  59. }
  60.  
  61. - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
  62.  
  63. NSString *url = [navigationAction.request.URL absoluteString];
  64. url = [url stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  65.  
  66. if ([url rangeOfString:@"xxxx://"].location != NSNotFound) {
  67. // custom fundation
  68. decisionHandler(WKNavigationActionPolicyCancel);
  69. return; // the same as to use if...else
  70. }
  71. decisionHandler(WKNavigationActionPolicyAllow);
  72.  
  73. }
Add Comment
Please, Sign In to add comment