WPF中浏览器版本的检测

问题描述 投票:2回答:3

是否可以找到运行在哪个浏览器版本的浏览器托管应用程序(XBAP)(例如IE6,IE7或IE8)?我想从XBAP中找出浏览器版本。

wpf internet-explorer client xbap version-detection
3个回答
2
投票

[在Microsoft论坛的帮助下,我被带到了最终可行的方向。下面是C ++。NET中的概念验证(。

using namespace System::Windows::Forms;

[STAThread]
String^ GetBrowserVersion() {
   String^ strResult = String::Empty;
   WebBrowser^ wb = gcnew WebBrowser();            
   String^ strJS = "<SCRIPT>function GetUserAgent() { return navigator.userAgent; }</SCRIPT>";
   wb->DocumentStream = gcnew MemoryStream( ASCIIEncoding::UTF8->GetBytes(strJS) );            
   while ( wb->ReadyState != WebBrowserReadyState::Complete ) {
      Application::DoEvents();
   }
   String^ strUserAgent = (String^)wb->Document->InvokeScript("GetUserAgent");
   wb->DocumentStream->Close();
   String^ strBrowserName = String::Empty;
   int i = -1;
   if ( ( i = strUserAgent->IndexOf( "MSIE" ) ) >= 0 ) {          
      strBrowserName = "Internet Explorer";
   } else if ( ( i = strUserAgent->IndexOf( "Opera" ) ) >= 0 ) {
      strBrowserName = "Opera";
   } else if ( ( i = strUserAgent->IndexOf( "Chrome" ) ) >= 0 ) {
      strBrowserName = "Chrome";
   } else if ( ( i = strUserAgent->IndexOf( "FireFox" ) ) >= 0 ) {
      strBrowserName = "FireFox";
   }
   if ( i >= 0 ) {
      int iStart = i + 5;
      int iLength = strUserAgent->IndexOf( ';', iStart ) - iStart;
      strResult = strBrowserName + " " + strUserAgent->Substring( iStart, iLength );
   }
   return strResult;
}

1
投票

我想您是说Silverlight而不是WPF? (尽管它们是相似的,但它们是独立的技术)。

看看System.Windows.Browser.BrowserInformation Class

特定

System.Windows.Browser.BrowserInformation

从上面的MSDN页面:

System.Windows.Browser.BrowserInformation.BrowserVersion

使用System.Windows.Controls;使用System.Windows.Browser;

using System;

0
投票
public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
     outputBlock.Text +=
       "\nSilverlight can provide browser information:\n"
     + "\nBrowser Name = " + HtmlPage.BrowserInformation.Name
     + "\nBrowser Version = " + 
           HtmlPage.BrowserInformation.BrowserVersion.ToString()
     + "\nUserAgent = " + HtmlPage.BrowserInformation.UserAgent
     + "\nPlatform = " + HtmlPage.BrowserInformation.Platform
     + "\nCookiesEnabled = " + 
           HtmlPage.BrowserInformation.CookiesEnabled.ToString() + "\n";

   }
}
© www.soinside.com 2019 - 2024. All rights reserved.