在WebView
中显示HTML内容时,我遇到了一个令人不安的问题,为了简化阅读,我将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
};
}
iPhone:
通过在iOS项目的AssembyInfo.cs文件中添加以下内容,我尝试使用WkWebViewRenderer
而不是UIWebView
:
[assembly: ExportRenderer(typeof(WebView), typeof(Xamarin.Forms.Platform.iOS.WkWebViewRenderer))]
有帮助吗?
答案 0 :(得分:0)
原因: 从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>
有关更多详细信息,您可以访问此document