1
我目前在我的Xamarin.Forms應用程序的iOS項目中的我的HybridWebViewRenderer中設置了UIWebView的用戶代理。如何在Xamarin.Forms中爲UiWebView設置用戶代理iOS app
它可以工作,但僅在一開始,後續的Web請求才沒有UserAgent。
我在AutoWebViewRenderer中的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())));
}
}