2016-05-26 29 views
1

現在、Xamarin.FormsアプリケーションのiOSプロジェクトのHybridWebViewRenderer内でUIWebViewのユーザーエージェントを設定しています。Xamarin.Forms iOSアプリケーションでUiWebViewのユーザーエージェントを設定する方法

これはうまくいきますが、最初のときだけ、後続のWebリクエストにはUserAgentがありません。

次のように、HybridWebViewRendererのOnElementChangedでUserAgentを設定していますが、これはWebViewの作成時に一度呼び出されることです。

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

     if (Control == null) 
     { 
      UIWebView agentWebView = new UIWebView(); 
      var userAgent = agentWebView.EvaluateJavascript("navigator.userAgent"); 
      userAgent += "MyApp"; 
      NSDictionary dictionary = NSDictionary.FromObjectAndKey(NSObject.FromObject(userAgent), NSObject.FromObject("UserAgent")); 
      NSUserDefaults.StandardUserDefaults.RegisterDefaults(dictionary); 
      agentWebView.ShouldStartLoad += HandleStartLoad; 
      base.SetNativeControl(agentWebView); 
      agentWebView.LoadRequest(new NSUrlRequest(new NSUrl(e.NewElement.Uri.ToString()))); 

     } 
    } 

答えて

0

私はまったく同じコードを使用しますが、OnElementChangedイベントではなくコンストラクタで行います。

関連する問題