MOCHAT.js 992 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. var MOCHAT = {}
  2. var ENVENS = {
  3. dataType: {}
  4. }
  5. var jsAPIList = [
  6. '$refresh',
  7. '$Toast',
  8. '$sendMessage'
  9. ]
  10. function _INIT () {
  11. function jsAPIINIT (apiAction) {
  12. MOCHAT[apiAction] = function(...arg) {
  13. window.parent.postMessage(
  14. {
  15. apiAction,
  16. params: arg
  17. },
  18. '*'
  19. )
  20. }
  21. }
  22. jsAPIList.forEach(item => {
  23. jsAPIINIT(item)
  24. })
  25. MOCHAT.getExtData = function(callback) {
  26. var id = Date.now().toString(36) + parseInt(Math.random() * 100000 + '').toString(36)
  27. ENVENS.dataType[id] = callback
  28. window.parent.postMessage(
  29. {
  30. apiAction: 'getExtData',
  31. params: id
  32. },
  33. '*'
  34. )
  35. }
  36. window.MOCHAT = MOCHAT
  37. }
  38. _INIT()
  39. window.addEventListener('message', (e) => {
  40. var eventData = e.data
  41. if (eventData.apiAction === 'accData') {
  42. if (ENVENS.dataType[eventData.id]) {
  43. ENVENS.dataType[eventData.id](eventData.params)
  44. }
  45. }
  46. })