我必须从我的应用程序发送用户代理到服务器。 “Mozilla/4.0(兼容; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; HD7 T9292)” 以上是一个示例用户代理。我不知道。为了形成用户代理,我们可以通过编程获得所有的值。任何人都可以请帮忙。WP7以编程方式形成UserAgent
1
A
回答
0
这看起来像在HD7上的IE7移动用户代理。我假设你没有写IEMobile,所以你的应用会有不同的用户代理名称/标识符。如果您从您的应用发出网络请求,那么您的应用是与内置浏览器不同的用户代理。
SDK没有公开获取组成示例中用户代理的所有单个元素的方式。
如果你真的想要从你的应用程序中获得浏览器的用户代理,那么最好的办法可能是包括一个WebBrowser控件,然后通过Javascript解压缩navigator.userAgent
,但我不知道是否它的支持。如果支持,您可以使用windows.external.notify
将它传回给您的代码。
2
为了记录,设备名称不是用户代理的必要部分。
全球用户代理字符串为Mango看起来是这样的:
Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)
0
我做了这个帮手,这将创建一个临时的web浏览器,加载脚本,并返回一个awaitable的userAgent:
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)";
相关问题
- 1. C#以编程方式形成图像
- 2. wp7以编程方式访问SIM卡
- 3. 将方形图像裁剪成圆形 - 以编程方式
- 4. 以编程方式附加验证规则以形成字段
- 5. 你可以在wp7中以编程方式锁定屏幕
- 6. 以编程方式显示应用程序栏菜单(wp7)
- 7. 以编程方式关闭WP7应用程序?
- 8. 以编程方式添加矩形
- 9. Android以编程方式使用形状
- 10. 以编程方式形成对象名称
- 11. 如何在android中以编程方式创建方形图形?
- 12. 如何在WP7上以编程方式打开/关闭WiFi
- 13. 如何以编程方式为ApplicationBarMenuItem设置文本wp7
- 14. 如何以编程方式锁定键/键盘在WP7
- 15. Silverlight/WP7:以编程方式更改按钮背景图像
- 16. 在WP7中以编程方式创建弹出菜单
- 17. 以编程方式关闭WP7 Silverlight工具包中的ListPicker
- 18. 以编程方式关闭后退键按下的事件WP7
- 19. 如何以编程方式为WP7备份和恢复SMS?
- 20. 以编程方式在Windows Phone 7(WP7)中创建按钮
- 21. 以编程方式在WP7上显示软输入面板(SIP)
- 22. SSRS:以编程方式生成报告
- 23. Yii2以编程方式生成模型
- 24. 以编程方式生成pom.xml
- 25. 以编程方式生成顶点
- 26. 以编程方式完成子活动
- 27. 以编程方式生成布局(XAML)
- 28. 以编程方式生成的视图
- 29. 以编程方式生成JavaDoc文件
- 30. 以编程方式生成.mht文件
如果我需要通过Web浏览器获取用户代理,那么我需要将WebBrowser添加到可视化树中。然后只有我可以得到用户代理。因此,在主页本身,浏览器将变为可见并在我删除它时熄灭。有没有其他解决方法? – saikamesh
@saikamesh我不是你想要的东西,但是你可以使控件非常小或者在可见区域之外,或者在它前面添加另一个控件,使其不可见。如果将控件的不透明度设置为0,它甚至可能仍然有效。 –