title: After ios 11 upgrade WKWebView does not load my website
body: <p>After ios 11 upgrade WKWebView does not load my website. 
  I added the following methods to my renderer:</p>
  
  <pre><code>    [Export("webViewWebContentProcessDidTerminate:")]
      public virtual void ContentProcessDidTerminate(WKWebView webView)
      {
  
          Console.WriteLine("ContentProcessDidTerminate");
      }
  
      [Export("webView:didFinishNavigation:")]
      public void DidFinishNavigation(WKWebView webView, WKNavigation navigation)
      {
  
          UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
          Console.WriteLine("DidFinishNavigation");
      }
  
      [Export("webView:didFailNavigation:withError:")]
      public void DidFailNavigation(WKWebView webView, WKNavigation navigation, NSError error)
      {
          // If navigation fails, this gets called
          Console.WriteLine("DidFailNavigation:" + error.ToString());
      }
  
      [Export("webView:didFailProvisionalNavigation:withError:")]
      public void DidFailProvisionalNavigation(WKWebView webView, WKNavigation navigation, NSError error)
      {
          // If navigation fails, this gets called
          Console.WriteLine("DidFailProvisionalNavigation" + error.ToString());
      }
  
      [Export("webView:didStartProvisionalNavigation:")]
      public void DidStartProvisionalNavigation(WKWebView webView, WKNavigation navigation)
      {
  
          UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;
          // When navigation starts, this gets called
          Console.WriteLine("DidStartProvisionalNavigation");
      }
  </code></pre>
  
  <p>The application shows didStartProvisionalNavigation but it does not move to the other methods. </p>
  
  <p>I also added the following to my info.plist:</p>
  
  <pre><code>&lt;key&gt;NSAppTransportSecurity&lt;/key&gt;
      &lt;dict&gt;
          &lt;key&gt;NSAllowsArbitraryLoads&lt;/key&gt;
          &lt;true/&gt;
  &lt;/dict&gt;
  </code></pre>
  
  <p>I also tried running my WKWebview against another of my sites and that one works just fine.</p>
  
  <p>In Safari, after attaching it to my WKWebView, I can see that some webapi calls does not seem to complete the request. Yet in some cases the same request does complete but some others does not.</p>
  
  <p>Is anyone having this type of issue?</p>
  
  <p>Any help to solve this would be really appreciated. </p>
  
  <p>Thanks,</p>
  
  <p>Hector </p>
  
  <p>UPDATE:I found the solution</p>
  
  <p>It turns out that in iOS 11 the WKWebView is trying to navigate to "about:blank". I'm not aware of our site having that "page".
  Then in my DecidePolicy that page was not allowed and I guess that was also stopping my website from continuing loading normally. I added a condition to enable navigation to "about:blank" and that solved it.</p>
  
  <pre><code>[Export("webView:decidePolicyForNavigationAction:decisionHandler:")]
      public override void DecidePolicy(WKWebView webView, WKNavigationAction navigationAction, Action&lt;WKNavigationActionPolicy&gt; decisionHandler)
      {
  
          var navType = navigationAction.NavigationType;
          var targetFrame = navigationAction.TargetFrame;
  
          var url = navigationAction.Request.Url;
          if (
              url.ToString().StartsWith("http") &amp;&amp; (targetFrame != null &amp;&amp; targetFrame.MainFrame == true)
              )
          {
              decisionHandler(WKNavigationActionPolicy.Allow);
          }
          else if (
              (url.ToString().StartsWith("http") &amp;&amp; targetFrame == null)
              ||
              url.ToString().StartsWith("mailto:")
              || url.ToString().StartsWith("tel:")) //Whatever your test happens to be
          {
              //decisionHandler(WKNavigationActionPolicy.Allow);
  
              Device.BeginInvokeOnMainThread(() =&gt;
              {
                  UIApplication.SharedApplication.OpenUrl(url);
              }
              );
          } // NEED THIS IN IOS 11
          else if ( url.ToString().StartsWith("about") )
          {
              decisionHandler(WKNavigationActionPolicy.Allow);
          }
      }
  </code></pre>
  
  <p>Hope this helps someone else. :)</p>