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())));
}
}