一个UIWebView在Xamarin.iOS似乎忽略外部CSS样式?(UIWebView in X

2019-10-31 07:44发布

我面临着显示HTML内容的令人不安的问题WebView ,我已经简化了HTML内容,这更容易阅读:

 <!DOCTYPE html> <html lang="en"> <head> <link href="https://www.paytabs.com/theme/payment_page/css/bootstrap.css" rel="stylesheet" type="text/css"> <link href="https://www.paytabs.com/theme/payment_page/css/custom-rtl.css?timestamp=1540717040" rel="stylesheet" type="text/css"> </head> <body> <h1 class="text-primary">text one</h1> <a href="www.stackoverflow.com" class="text-primary">StackOverflow</a> <div class="container"> <div class="header-title"><h3>Xamarin</h3></div> </div> <h3 class="text-success">Success</h3> <img src="https://i.stack.imgur.com/PwBYM.jpg?s=328&g=1" alt="image"/> <h1 class="mark">Mark</h1> <div class="payment-wrap"> <div> <label class="payment_method"> <input type="radio" id="creditcard" name="payment_type" value="creditcard"> <img src="https://www.paytabs.com/images/img/cards.png" width="75" alt="Credit Card"> </label> </div> <div class="form-wrap sadad-hide" style="display:none;"> <input class="form-control" placeholder="Enter user" value="" maxlength="12" name="olpalias" id="olpalias" autocomplete="off" type="text"> </div> <span class="whats-this sadad-hide" style="display:none;">Don't have account?</span> <!--Sadad Enable--> <div id="pt-sadad-enable-outer"> <div id="pt-sadad-enable" class="pt-sadad-enable-wrap pt-arrow"> <div class="pt-sadad-enable-inner"> <h2>How to activate?</h2> <ul class="pt-sadad-htp"> <li class="step1 step-help"> <figure> <img class="img-help" src="https://www.paytabs.com/images/sadad/p1.png" width="50" height="32"> <figcaption>Activate online</figcaption> </figure> </li> <li class="step2 step-help"> <figure> <img class="img-help" src="https://www.paytabs.com/images/sadad/p2.png" width="48" height="33"> <figcaption>Create sadad account</figcaption> </figure> </li> <li class="step3 step-help"> <figure> <img class="img-help" src="https://www.paytabs.com/images/sadad/p3.png" width="27" height="33"> <figcaption>Add to your account</figcaption> </figure> </li> </ul> <a href="https://www.sadad.com/ar/Personal/Pages/RegisterNow.aspx" class="pt-sadad-btn" target="_blank">learn more</a> </div> </div> </div> <!-- End Sadad Enable Note--> </div> </body> </html> 

在这里,我设定的Source的的webView

 public MainPage()
        {
            InitializeComponent();
            webView.Source = new HtmlWebViewSource
            {
                Html = Resource1.testHtml //containing the HTML above
            };
        }

以下是显示在Android(正常)'S:

苹果手机:

我试图用WkWebViewRenderer而非UIWebView ,通过在iOS的项目AssembyInfo.cs文件中添加此:

[assembly: ExportRenderer(typeof(WebView), typeof(Xamarin.Forms.Platform.iOS.WkWebViewRenderer))] 

但是,这只是缩小页面大小:

任何帮助吗?

Answer 1:

原因:由于iOS的9,iOS版将只允许你的应用程序与在默认情况下实现最佳实践的安全服务器进行通信。 值必须在Info.plist中设置为启用与不安全的服务器进行通信。

解决方法:添加以下代码在您info.plist信任域。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
      <key>www.paytabs.com</key>
      <dict>       
       <key>NSExceptionRequiresForwardSecrecy</key>
       <false/>
       <key>NSExceptionAllowsInsecureHTTPLoads</key>
       <true/>
       <key>NSIncludesSubdomains</key>
       <true/>
     </dict>
</dict>

欲了解更多详情,您可以访问此文件



文章来源: UIWebView in Xamarin.iOS seems to ignore external CSS styles?