Xamarin.FormsのWebView(WKWebView)でUserAgentを書き換えるのではなく、オリジナルの文字列を追加する
アプリ内のWebViewで開いた場合と、直接ブラウザで開いた場合の判定条件にオリジナルの文字列を使いたい場合。
WebViewのCustomUserAgentプロパティに文字列をセットすると本来のUserAgentが上書きされてしまうので、追加したい場合はまず自分自身のUserAgentを取得する必要がある。
そのために、WKWebViewのJavaScriptを実行するメソッド、EvaluateJavaScriptを使う。
WkWebViewRendererを継承したクラスを使う
MyWebViewRenderer.cs
[assembly:ExportRenderer(typeof(WebView), typeof(MyWebViewRenderer))]
namespace Sample.iOS
{
public class MyWebViewRenderer : WKWebViewRenderer, IWKUIDelegate
{
this.EvaluateJavaScript("navigator.userAgent", (result, error) =>
{
if (result != null)
{
var agent = result.ToString();
this.CustomUserAgent = agent + " MyApplication";
}
}
}
// 以下省略