2017-03-02 5 views
4

iOSのCustomWebViewRendererを実装しようとしましたので、後でリクエストにヘッダーを追加できます。私は境界線がWebビューを囲んでいるのを見ることができますが、境界線と同じ色の背景を見ることはできません。国境の内側に白い空白スペースしか見えません。Xamarin Form:iOSのCustomWebViewが単純なWebページを表示していません

public class CustomWebViewRenderer : ViewRenderer<CustomWebView, UIWebView> 
{ 
    protected override void OnElementChanged(ElementChangedEventArgs<CustomWebView> e) 
    { 
     base.OnElementChanged(e); 

     var control = new UIWebView(); 
     control.Layer.BorderColor = new CoreGraphics.CGColor(1.0f, 1.0f, 0.0f); 
     control.Layer.BorderWidth = 10; 
     control.Layer.BackgroundColor = new CoreGraphics.CGColor(1.0f, 1.0f, 0.0f); 
     control.Delegate = new WebViewDelegate(control, Element.Token); 
     SetNativeControl(control); 

     if (!String.IsNullOrEmpty(Element.Token) && !String.IsNullOrEmpty(Element.Url)) 
     { 
      Control.LoadRequest(new NSUrlRequest(new NSUrl(Element.Url))); 
     } 
    } 

    protected void OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) 
    { 
     var element = ((CustomWebView)Element); 

     if (e.PropertyName.Equals(nameof(element.Token))) 
     { 
      ((WebViewDelegate)Control.Delegate).Token = element.Token; 

      Control.LoadRequest(new NSUrlRequest(new NSUrl(Element.Url))); 
     } 
    } 

    class WebViewDelegate : UIWebViewDelegate 
    { 
     public string Token { get; set; } 

     private UIWebView _view; 
     public WebViewDelegate(UIWebView view, string token) 
     { 
      _view = view; 
      Token = token; 
     } 
     public override bool ShouldStartLoad(UIWebView webView, 
               NSUrlRequest request, 
               UIWebViewNavigationType navigationType) 
     { 
      //request.Headers.SetValueForKey((NSString)"Authorization", (NSString)("Bearer " + Token)); 

      return true; 
     } 

インターネットの許可のためにAndroidのような.plistファイル内に何か編集が必要ですか?

+0

表示しようとしているサイトのURLは何ですか? – hvaughan3

+0

iosバージョン? – sugansoft

+0

ログに何かが表示されましたか?apptransportsecurity sthのようですか? – Akshay

答えて

0

コードはhttpsサイトで動作します。あなたはあなたが特定のドメインへのアクセスを制限し、より多くをカスタマイズすることができ

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

に従うInfo.plistファイルに追加する必要があります。httpのWebサイトを開くには 。 もっと見る:Transport security has blocked a cleartext HTTP

あなたのリソースからhtmlを読み込む必要がある場合はお知らせください。それは別の問題になります。

関連する問題