XWebManager.ets 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { ToolsHelper } from './ToolsHelper';
  2. export class XWebManager {
  3. private static closeCall?: () => void;
  4. static onGetUrl: () => string;
  5. static onGetTitle: () => string;
  6. static onRefresh: () => void;
  7. static onClose(call: () => void) {
  8. XWebManager.closeCall = call
  9. }
  10. static close() {
  11. XWebManager.closeCall && XWebManager.closeCall()
  12. }
  13. static getUrl() {
  14. return XWebManager.onGetUrl()
  15. }
  16. static getTitle() {
  17. return XWebManager.onGetTitle()
  18. }
  19. static refresh() {
  20. XWebManager.onRefresh()
  21. }
  22. private static MapEventListener = new Map<string, (msg: string) => void>();
  23. static objs: Map<string, object> = new Map()
  24. static addOnMessage(listener: (msg: string) => void): string {
  25. const id = ToolsHelper.getUuid()
  26. XWebManager.MapEventListener.set(id, listener)
  27. return id
  28. }
  29. static removeOnMessage(id?: string) {
  30. if (id) {
  31. XWebManager.MapEventListener.delete(id)
  32. }
  33. }
  34. static sendMessage(message: string) {
  35. for (let item of XWebManager.MapEventListener.values()) {
  36. item(message)
  37. }
  38. }
  39. static menuClick: () => void
  40. private static MapEventListenerToHtml = new Map<string, (msg: string) => void>();
  41. static addOnMessageToHtml(id: string, listener: (msg: string) => void) {
  42. XWebManager.MapEventListenerToHtml.set(id, listener)
  43. }
  44. static removeOnMessageToHtml(id?: string) {
  45. if (id) {
  46. XWebManager.MapEventListenerToHtml.delete(id)
  47. }
  48. }
  49. static sendMessageToHtml(message: string) {
  50. for (let item of XWebManager.MapEventListenerToHtml.values()) {
  51. item(message)
  52. }
  53. }
  54. private static MapEventListenerToWeb = new Map<string, (msg: string) => void>();
  55. static addOnMessageToWeb(id: string, listener: (msg: string) => void) {
  56. XWebManager.MapEventListenerToWeb.set(id, listener)
  57. }
  58. static removeOnMessageToWeb(id?: string) {
  59. if (id) {
  60. XWebManager.MapEventListenerToWeb.delete(id)
  61. }
  62. }
  63. static sendMessageToWeb(message: string) {
  64. for (let item of XWebManager.MapEventListenerToWeb.values()) {
  65. item(message)
  66. }
  67. }
  68. }