|
@@ -14,12 +14,59 @@ namespace fis.Managers
|
|
|
{
|
|
|
internal class FisBrowser : AvaloniaCefBrowser
|
|
|
{
|
|
|
+ public virtual void ExcuteJS(TargetMethodName targetMethodName, List<string> arguments)
|
|
|
+ {
|
|
|
+ //
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 开始拖拽
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public virtual void BeginWindowDrag(string windowName)
|
|
|
+ {
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 结束拖拽
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public virtual void EndWindowDrag(string windowName)
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 最小化窗口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public virtual void MinimizeWindow(string windowName)
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 最大化窗口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public virtual void MaximizeWindow(string windowName)
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 关闭窗口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public virtual void CloseWindow(string windowName)
|
|
|
+ {
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
internal class MacFisBrowser : FisBrowser
|
|
|
{
|
|
|
-
|
|
|
+ public override void ExcuteJS(TargetMethodName targetMethodName, List<string> arguments)
|
|
|
+ {
|
|
|
+ var jsContent = JsContentConvert.GetExcuteJsContent(targetMethodName, arguments);
|
|
|
+ ExecuteJavaScript(jsContent, null, 0);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
internal class WinFisBrowser : FisBrowser
|
|
@@ -55,6 +102,57 @@ namespace fis.Managers
|
|
|
throw new ArgumentException($"Argument {nameof(service)} should be WinService");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 开始拖拽
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public override void BeginWindowDrag(string windowName)
|
|
|
+ {
|
|
|
+ WindowDragBegan?.Invoke(this, windowName);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 结束拖拽
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public override void EndWindowDrag(string windowName)
|
|
|
+ {
|
|
|
+ WindowDragEnded?.Invoke(this,windowName);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 最小化窗口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public override void MinimizeWindow(string windowName)
|
|
|
+ {
|
|
|
+ WindowMinimized?.Invoke(this,windowName);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 最大化窗口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public override void MaximizeWindow(string windowName)
|
|
|
+ {
|
|
|
+ WindowMaximized?.Invoke(this,windowName);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 关闭窗口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="windowName"></param>
|
|
|
+ public override void CloseWindow(string windowName)
|
|
|
+ {
|
|
|
+ WindowClosed?.Invoke(this,windowName);
|
|
|
+ }
|
|
|
+
|
|
|
+ public override void ExcuteJS(TargetMethodName targetMethodName, List<string> arguments)
|
|
|
+ {
|
|
|
+ var jsContent = JsContentConvert.GetExcuteJsContent(targetMethodName, arguments);
|
|
|
+ ExecuteJavaScript(jsContent, null, 0);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
internal class BrowserManager
|
|
@@ -67,8 +165,6 @@ namespace fis.Managers
|
|
|
|
|
|
private static FisBrowser? _slaveBrowser;
|
|
|
|
|
|
- public const string NotificationName = "externalNotification";
|
|
|
-
|
|
|
static BrowserManager()
|
|
|
{
|
|
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
@@ -164,90 +260,5 @@ namespace fis.Managers
|
|
|
return _slaveBrowser;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 开始拖拽
|
|
|
- /// </summary>
|
|
|
- /// <param name="windowName"></param>
|
|
|
- public static void BeginWindowDrag(string windowName)
|
|
|
- {
|
|
|
- _platformService.BeginWindowDrag(windowName);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 结束拖拽
|
|
|
- /// </summary>
|
|
|
- /// <param name="windowName"></param>
|
|
|
- public static void EndWindowDrag(string windowName)
|
|
|
- {
|
|
|
- _platformService.EndWindowDrag(windowName);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 最小化窗口
|
|
|
- /// </summary>
|
|
|
- /// <param name="windowName"></param>
|
|
|
- public static void MinimizeWindow(string windowName)
|
|
|
- {
|
|
|
- _platformService.MinimizeWindow(windowName);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 最大化窗口
|
|
|
- /// </summary>
|
|
|
- /// <param name="windowName"></param>
|
|
|
- public static void MaximizeWindow(string windowName)
|
|
|
- {
|
|
|
- _platformService.MaximizeWindow(windowName);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 关闭窗口
|
|
|
- /// </summary>
|
|
|
- /// <param name="windowName"></param>
|
|
|
- public static void CloseWindow(string windowName)
|
|
|
- {
|
|
|
- _platformService.CloseWindow(windowName);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 执行Js方法
|
|
|
- /// </summary>
|
|
|
- /// <param name="methodName"></param>
|
|
|
- /// <param name="targetMethodName"></param>
|
|
|
- /// <param name="arguments"></param>
|
|
|
- public static void ExecuteJS(TargetMethodName targetMethodName, List<string> arguments, bool isMainBrowser = true)
|
|
|
- {
|
|
|
- string callString = NotificationName + "(";
|
|
|
- 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 + comma + "";
|
|
|
- }
|
|
|
- callString += ");";
|
|
|
- if (isMainBrowser)
|
|
|
- {
|
|
|
- MainBrowser?.ExecuteJavaScript(callString, null, 0);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SlaveBrowser?.ExecuteJavaScript(callString, null, 0);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|