📄 webpagechannel.cs
字号:
namespace Imps.Client.Pc.Channel
{
using Imps.Client.Core;
using Imps.Client.Pc;
using Imps.Client.Pc.BizControls;
using Imps.Utils;
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
[ComVisible(true)]
public class WebPageChannel : IChannel
{
private IFrameworkWindow _host;
private string _initUrl;
public WebPageChannel(IFrameworkWindow host)
{
this._host = host;
}
private string GetArgsValue(string args)
{
if (string.IsNullOrEmpty(args))
{
return string.Empty;
}
StringBuilder builder = new StringBuilder();
User currentUser = this.FrameworkWnd.AccountManager.CurrentUser;
foreach (string text in args.Split(new char[] { ',' }))
{
if (builder.Length > 0)
{
builder.Append('&');
}
builder.Append(text);
if (text.IndexOf('=') < 0)
{
builder.Append('=');
}
switch (text)
{
case "c":
builder.Append(currentUser.SsicUrlEncoded);
break;
case "gender":
builder.Append(((int) currentUser.PersonalInfo.Gender.Value).ToString());
break;
case "province":
builder.Append(currentUser.PersonalInfo.Province.Value);
break;
case "city":
builder.Append(currentUser.PersonalInfo.City.Value);
break;
case "avatarUrlBase":
builder.Append(HttpWebRequestHelper.UrlEncode(currentUser.Configuration.SystemSetting.PortraitSetting.UriDownloadPortrait));
break;
case "mobileNo":
builder.Append(currentUser.PersonalInfo.MobileNo);
break;
case "sid":
builder.Append(currentUser.Sid.ToString());
break;
case "t":
builder.Append(new Random().Next().ToString());
break;
}
}
return builder.ToString();
}
public virtual bool Load(string strUri, string args)
{
try
{
this.InnerWebBrowser.ObjectForScripting = null;
string urlString = strUri;
if (string.IsNullOrEmpty(urlString))
{
urlString = "about:blank";
}
else if (!string.IsNullOrEmpty(args))
{
urlString = urlString + ((urlString.IndexOf('?') < 0) ? ((string) '?') : ((string) '&')) + this.GetArgsValue(args);
}
ChannelManagerImp.ChannelWebBrowser.Navigate(urlString);
}
catch (Exception)
{
return false;
}
return true;
}
protected void NavigateToBlankPage()
{
this.InnerWebBrowser.Navigate("about:blank");
}
public virtual void Reset()
{
if (!string.IsNullOrEmpty(this._initUrl))
{
this.Load(this._initUrl, string.Empty);
}
}
public Control ChannelControl
{
get
{
return ChannelManagerImp.ChannelWebBrowser;
}
}
protected IFrameworkWindow FrameworkWnd
{
get
{
return this._host;
}
}
public string InitUrl
{
get
{
return this._initUrl;
}
set
{
this._initUrl = value;
}
}
protected WebBrowserContainer InnerWebBrowser
{
get
{
return ChannelManagerImp.ChannelWebBrowser;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -