closeWebview.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. window.onload = function () {
  2. const closeWebviewObj = {
  3. closeWebview: function () {
  4. closeWebviewObj.postMessage({
  5. functionName: 'calendarui_closecalendarmobile',
  6. params: {},
  7. });
  8. },
  9. getJsCallId: function () {
  10. return 'id' + Math.random().toString(16).slice(2);
  11. },
  12. postMessage: function (message) {
  13. try {
  14. message.jsCallId = closeWebviewObj.getJsCallId();
  15. const json = JSON.stringify(message);
  16. if (closeWebviewObj.isAndroid()) {
  17. window.android.postMessage(json);
  18. }
  19. if (closeWebviewObj.isWebView2()) {
  20. window.chrome.webview.postMessage(json);
  21. } else if (window.chrome && window.webkit) {
  22. window.webkit.messageHandlers.jsOCHelper.postMessage(json);
  23. } else if (closeWebviewObj.isMacOS()) {
  24. window.webkit.messageHandlers.jsOCHelper.postMessage(message);
  25. }
  26. } catch (e) {
  27. // console.error('upgrade postMessage error', e);
  28. // todo:
  29. }
  30. },
  31. isAndroid: function () {
  32. return window.android;
  33. },
  34. isWebView2: function () {
  35. return window.chrome && window.chrome.webview;
  36. },
  37. isMacOS () {
  38. return !window.chrome && window.webkit;
  39. },
  40. };
  41. const backDom = document.getElementById('back');
  42. backDom.addEventListener('click', closeWebviewObj.closeWebview);
  43. };