BaseBrowserCheck
来源:互联网 发布:淘宝店铺基本加权设置 编辑:程序博客网 时间:2024/06/05 07:55
unit ServerController;
interface
uses
SysUtils, Classes, IWServerControllerBase, IWBaseForm, HTTPApp,
// For OnNewSession Event
UserSessionUnit, IWApplication, IWAppForm, IW.Browser.Browser,
IW.Browser.InternetExplorer, IW.Browser.Safari,
IW.Browser.Chrome, IW.Browser.Firefox, IW.Browser.Other;
type
TIWServerController = class(TIWServerControllerBase)
procedure IWServerControllerBaseNewSession(ASession: TIWApplication);
procedure IWServerControllerBaseBrowserCheck(ASession: TIWApplication;
var rBrowser: TBrowser);
private
public
end;
function UserSession: TIWUserSession;
function IWServerController: TIWServerController;
implementation
{$R *.dfm}
uses
IWInit, IWGlobal;
function IWServerController: TIWServerController;
begin
Result := TIWServerController(GServerController);
end;
function UserSession: TIWUserSession;
begin
Result := TIWUserSession(WebApplication.Data);
end;
procedure TIWServerController.IWServerControllerBaseBrowserCheck
(ASession: TIWApplication; var rBrowser: TBrowser);
var
MinVersion: Single;
// ua: String;
begin
// ua := ASession.Request.GetRawHeaderValue('User-Agent');
if (rBrowser is TSafari) and (not rBrowser.IsSupported) then
begin
// if is Safari, but older version
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TSafari.Create(MinVersion);
end
// if is Chrome, but older version
else if (rBrowser is TChrome) and (not rBrowser.IsSupported) then
begin
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TChrome.Create(MinVersion);
end
// if is Firefox, but older version
else if (rBrowser is TFirefox) and (not rBrowser.IsSupported) then
begin
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TFirefox.Create(MinVersion);
end
// if is IE, but older version
else if (rBrowser is TInternetExplorer) and (not rBrowser.IsSupported) then
begin
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TInternetExplorer.Create(MinVersion);
end
else if (rBrowser is TOther) or (not rBrowser.IsSupported) then
begin
// unknown browser
rBrowser.Free;
// accept the unknown browser as Internet Explorer 8
rBrowser := TInternetExplorer.Create(8);
end;
end;
procedure TIWServerController.IWServerControllerBaseNewSession
(ASession: TIWApplication);
begin
ASession.Data := TIWUserSession.Create(nil, ASession);
end;
initialization
TIWServerController.SetServerControllerClass;
end.
interface
uses
SysUtils, Classes, IWServerControllerBase, IWBaseForm, HTTPApp,
// For OnNewSession Event
UserSessionUnit, IWApplication, IWAppForm, IW.Browser.Browser,
IW.Browser.InternetExplorer, IW.Browser.Safari,
IW.Browser.Chrome, IW.Browser.Firefox, IW.Browser.Other;
type
TIWServerController = class(TIWServerControllerBase)
procedure IWServerControllerBaseNewSession(ASession: TIWApplication);
procedure IWServerControllerBaseBrowserCheck(ASession: TIWApplication;
var rBrowser: TBrowser);
private
public
end;
function UserSession: TIWUserSession;
function IWServerController: TIWServerController;
implementation
{$R *.dfm}
uses
IWInit, IWGlobal;
function IWServerController: TIWServerController;
begin
Result := TIWServerController(GServerController);
end;
function UserSession: TIWUserSession;
begin
Result := TIWUserSession(WebApplication.Data);
end;
procedure TIWServerController.IWServerControllerBaseBrowserCheck
(ASession: TIWApplication; var rBrowser: TBrowser);
var
MinVersion: Single;
// ua: String;
begin
// ua := ASession.Request.GetRawHeaderValue('User-Agent');
if (rBrowser is TSafari) and (not rBrowser.IsSupported) then
begin
// if is Safari, but older version
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TSafari.Create(MinVersion);
end
// if is Chrome, but older version
else if (rBrowser is TChrome) and (not rBrowser.IsSupported) then
begin
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TChrome.Create(MinVersion);
end
// if is Firefox, but older version
else if (rBrowser is TFirefox) and (not rBrowser.IsSupported) then
begin
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TFirefox.Create(MinVersion);
end
// if is IE, but older version
else if (rBrowser is TInternetExplorer) and (not rBrowser.IsSupported) then
begin
MinVersion := rBrowser.MinSupportedVersion;
rBrowser.Free;
// we will create it as the minimum supported version
rBrowser := TInternetExplorer.Create(MinVersion);
end
else if (rBrowser is TOther) or (not rBrowser.IsSupported) then
begin
// unknown browser
rBrowser.Free;
// accept the unknown browser as Internet Explorer 8
rBrowser := TInternetExplorer.Create(8);
end;
end;
procedure TIWServerController.IWServerControllerBaseNewSession
(ASession: TIWApplication);
begin
ASession.Data := TIWUserSession.Create(nil, ASession);
end;
initialization
TIWServerController.SetServerControllerClass;
end.
0 0