2010-12-07 13 views
5

電話のユーザーエージェント文字列を取得する必要がありますが、これを許可するAPIで何も見つかりませんでした。私は、ユーザーエージェント文字列のフォーマットを記述する次の二つのブログの記事に遭遇しました:Windows Phone 7のユーザーエージェント文字列を取得するには?

http://blogs.msdn.com/b/iemobile/archive/2010/03/25/ladies-and-gentlemen-please-welcome-the-ie-mobile-user-agent-string.aspx

http://madskristensen.net/post/Windows-Phone-7-user-agents.aspx

しかし、私は、ユーザーエージェントを返すことができる方法を発見していません。誰もこれをうまくやったことがありますか?

答えて

3

Webブラウザとスクリプトを使用して、ユーザーエージェントを取得するソリューションがここに掲載されます。

Getting the Browser's User Agent.

+0

ありがとうございます。あまりにも悪いことに、ブラウザオブジェクトを作成せずにこれを行う方法はありません。 – CACuzcatlan

+0

心配しないで、それを合理化できるように傷つけることはないでしょう。提案フォーラムにコメントしたり、接続チケット(vs/wpdt)を作成してください。 –

+0

@MickNこのリンクにアクセスすることはできません。コンテンツをコピーしたり、リンクを修正したりできますか? –

4

質問に携帯電話を使用してhttp://whatsmyuseragent.comに移動します。私のサムスンの焦点から

Mozilla/4.0 (compatible: MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)

+0

リンク切れ... ... – esylvestre

+0

@esylvestreありがとう!一定。 – Lee

0

私は、スクリプトをロードし、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)"; 
関連する問題