私は、スクリプトをロードし、awaitableのuserAgentを返す、一時的なWebブラウザーを作成します。このヘルパーを作っ:
internal static class UserAgentHelper
{
private const string Html = @"<!DOCTYPE html><html><body onload=""window.external.notify(navigator.userAgent);""></body></html>";
public static Task<string> GetUserAgent()
{
var tcs = new TaskCompletionSource<string>();
var browser = new WebBrowser { IsScriptEnabled = true };
browser.ScriptNotify += (sender, args) => tcs.SetResult(args.Value);
browser.NavigateToString(Html);
return tcs.Task;
}
}
は使用方法:
var userAgent = await UserAgentHelper.GetUserAgent();
少なくともWP7.1とWP8.0で動作します。
WP7: "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Microsoft; XDeviceEmulator)";
WP8: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; Microsoft; Virtual)";
ありがとうございます。あまりにも悪いことに、ブラウザオブジェクトを作成せずにこれを行う方法はありません。 – CACuzcatlan
心配しないで、それを合理化できるように傷つけることはないでしょう。提案フォーラムにコメントしたり、接続チケット(vs/wpdt)を作成してください。 –
@MickNこのリンクにアクセスすることはできません。コンテンツをコピーしたり、リンクを修正したりできますか? –