|
@@ -31,7 +31,7 @@ namespace fis
|
|
|
ExtendClientAreaTitleBarHeightHint = -1;
|
|
|
MainThreadSyncContext = SynchronizationContext.Current;
|
|
|
#if DEBUG
|
|
|
- // this.AttachDevTools();
|
|
|
+ this.AttachDevTools();
|
|
|
#endif
|
|
|
}
|
|
|
|
|
@@ -40,35 +40,59 @@ namespace fis
|
|
|
/// </summary>
|
|
|
/// <param name="host"></param>
|
|
|
/// <param name="keyValuePairs"></param>
|
|
|
- internal void ChangeContent(string host, Dictionary<string, string> keyValuePairs)
|
|
|
+ internal void ChangeContentView(string host, Dictionary<string, string> keyValuePairs)
|
|
|
{
|
|
|
var browserContainer = this.FindControl<Border>("BrowserBorder");
|
|
|
_host = host;
|
|
|
_parameters = keyValuePairs;
|
|
|
- var parameter = "";
|
|
|
- var index = 0;
|
|
|
+ var arguments = new List<string>();
|
|
|
foreach (var p in _parameters)
|
|
|
{
|
|
|
- parameter += p.Key + "=" + p.Value;
|
|
|
- if (index < _parameters.Count - 1)
|
|
|
- {
|
|
|
- parameter += "&";
|
|
|
- }
|
|
|
- index++;
|
|
|
+ arguments.Add(p.Value);
|
|
|
}
|
|
|
- // window.WindowState = Avalonia.Controls.WindowState.Minimized;
|
|
|
- // window.ShowInTaskbar = false;
|
|
|
- _browser.Address = "http://" + ShellConfig.Instance.AppHost + "/index.html?page=measure&" + parameter;
|
|
|
if (WindowState == WindowState.Minimized) {
|
|
|
WindowState = WindowState.Maximized;
|
|
|
}
|
|
|
if (!ShowInTaskbar) {
|
|
|
ShowInTaskbar = true;
|
|
|
}
|
|
|
- browserContainer.Child = _browser;
|
|
|
+ ExecuteJS("externalNotification", TargetMethodName.OpenMeasurePage, arguments);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 执行Js方法
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="methodName"></param>
|
|
|
+ /// <param name="targetMethodName"></param>
|
|
|
+ /// <param name="arguments"></param>
|
|
|
+ /// ?page=measure&token=F680C7A0ADEF45D28D291DFD290000AC&patientCode=PatientInfoDO_20220725094305QTFMzU&index=0&imageIndex=0
|
|
|
+ private void ExecuteJS(string methodName, TargetMethodName targetMethodName, List<string> arguments)
|
|
|
+ {
|
|
|
+ string callString = methodName + "(";
|
|
|
+ if (arguments != null)
|
|
|
+ {
|
|
|
+ string comma = ", ";
|
|
|
+ var argumentsStr = "";
|
|
|
+ int index = 0;
|
|
|
+ foreach (var e in arguments)
|
|
|
+ {
|
|
|
+ if (index == arguments.Count - 1)
|
|
|
+ {
|
|
|
+ argumentsStr += e;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ argumentsStr += e + "&";
|
|
|
+ }
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+ var escaped = System.Web.HttpUtility.JavaScriptStringEncode(argumentsStr, true);
|
|
|
+ callString += (int)targetMethodName + comma + escaped;
|
|
|
+ }
|
|
|
+ callString += ");";
|
|
|
|
|
|
+ _browser?.ExecuteJavaScript(callString, null, 0);
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 初始化参数和组件
|
|
@@ -149,7 +173,7 @@ namespace fis
|
|
|
_browser.BrowserInitialized += () =>
|
|
|
{
|
|
|
#if DEBUG
|
|
|
- // _browser!.ShowDeveloperTools();
|
|
|
+ _browser!.ShowDeveloperTools();
|
|
|
#endif
|
|
|
};
|
|
|
var language = CultureInfo.CurrentCulture.Name;
|
|
@@ -164,10 +188,10 @@ namespace fis
|
|
|
_title.Text = "FLYINSONO";
|
|
|
}
|
|
|
}
|
|
|
- if (_title != null)
|
|
|
+ if (_title != null && _host.Contains(ShellConfig.Instance.DistHost))
|
|
|
{
|
|
|
- var scriptObj = new FisBrowserScriptObject(_title, platformService);
|
|
|
- _browser.RegisterJavascriptObject(scriptObj, "FisShellApi");
|
|
|
+ var scriptObj = new FisBrowserScriptObject(_title, platformService);
|
|
|
+ _browser.RegisterJavascriptObject(scriptObj, "FisShellApi");
|
|
|
}
|
|
|
browserContainer.Child = _browser;
|
|
|
WindowStartupLocation = WindowStartupLocation.Manual;
|