Explorar o código

commit redpack

jihuaqiang %!s(int64=2) %!d(string=hai) anos
pai
achega
328eaf78c2
Modificáronse 3 ficheiros con 298 adicións e 265 borrados
  1. 19 42
      src/pages/red-packet/luck-draw.vue
  2. 272 206
      src/pages/red-packet/red-packet.vue
  3. 7 17
      src/uilts/chromeExtension.js

+ 19 - 42
src/pages/red-packet/luck-draw.vue

@@ -888,7 +888,7 @@ function openShareFacebookWindow({ url }) {
     openUrlInNewWindow({
         width,
         type: 'normal',
-        url
+        url,
     })
 }
 
@@ -1000,6 +1000,7 @@ const openFollowTabs = (arr_name) => {
         // 打开标签页的方法
         array_finish.forEach((item) => {
             url = `https://twitter.com/intent/follow?screen_name=${item.name}&tweet_id=${state.tweetId}`
+            // todo
             chrome.tabs.create({ url }, (tab) => {
                 if (follow_open_tabs.filter((item) => { return item.url == tab.url }).length == 0) {
                     follow_open_tabs.push(tab)
@@ -1181,13 +1182,13 @@ const reportBindTweetSuccess = (params) => {
             console.log('reportBindTweetSuccess fail', e)
         }
     })
-    sendCurrentTabMessage({
-        actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
-        data: {
-            screen_name: srcUserId,
-            tweetId: state.tweetId
-        }
-    })
+    // sendCurrentTabMessage({
+    //     actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
+    //     data: {
+    //         screen_name: srcUserId,
+    //         tweetId: state.tweetId
+    //     }
+    // })
 
     if (discordTask) {
         getDiscordInfo({ inviteUrl: JSON.parse(discordTask.bizData).inviteUrl }, (res) => {
@@ -1470,7 +1471,6 @@ function setFrontConfig() {
 function init(initParams) {
     let { type } = initParams || {};
     onPageVisbile();
-    onWindowMessage();
     setFrontConfig();
     getPostDetail({
         params: {
@@ -2094,21 +2094,6 @@ function handleErrorCode(res) {
 //     businessType: Report.businessType.pageView
 //   });
 // }
-function onWindowMessage() {
-    // window.addEventListener("message", function (event) {
-    //     if (event.data) {
-    //         switch (event.data.actionType) {
-    //             // case 'CONTENT_RED_PACKET_REPLY_RASK_FINSH':
-    //             //     state.done.reply = true;
-    //             //     state.done.reply_red = false;
-    //             //     break;
-    //             // case 'CONTENT_RED_PACKET_FACEBOOK_REPLY':
-    //             //     clickReply(event.data.data)
-    //             //     break;
-    //         }
-    //     }
-    // });
-}
 
 function onPageVisbile() {
     document.addEventListener('visibilitychange', function () {
@@ -2132,17 +2117,14 @@ function onRuntimeMsg() {
         discordLoginSuccess();
     })
 
-    // chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
-    //     switch (req.actionType) {
-    //         case 'BG_FACEBOOK_SHARE_SUCCESS':
-    //             facebookShareSuccess(req.data);
-    //             break;
-    //         case 'USER_SETTING':
-    //             setNotification(req.data)
-    //             break;
-    //     }
-    //     sendResponse && sendResponse();
-    // })
+    messageCenter.listen('BG_FACEBOOK_SHARE_SUCCESS', (data) => {
+        facebookShareSuccess(data);
+    })
+
+    messageCenter.listen('USER_SETTING', (data) => {
+        console.log('USER_SETTING', data) 
+        setNotification(data)
+    })
 }
 
 /**
@@ -2259,15 +2241,10 @@ function discordAuth(actionState = 'default') {
             if (authorizeUrl) {
                 joinDiscordActionState = actionState;
                 const width = 500;
-                chrome.windows.create({
+                openUrlInNewWindow({
                     width,
                     type: 'normal',
-                    url: authorizeUrl
-                }, function (window) {
-                    let windowId = window.id;
-                    callEventPageMethod("RED_PACKET_SAVE_DISCORD_AUTH_WINDOW_ID", {
-                        windowId: windowId
-                    });
+                    url: authorizeUrl,
                 })
             }
         }

+ 272 - 206
src/pages/red-packet/red-packet.vue

@@ -410,12 +410,12 @@ export default {
 <script setup>
 import { onMounted, reactive, ref, computed } from "vue";
 import { getPostDetail, getRedPacket, finishRedPacket, oneKeyLike, oneKeyReTweet, oneKeyFollow, getTaskDetail, getReceivedList, addFinishEvent } from '@/http/redPacket.js'
-import { getQueryString, guid, getBit } from '@/uilts/help.js'
+import { getQueryString, guid, getBit, iframeId } from '@/uilts/help.js'
 import { message } from 'ant-design-vue';
 import FontAmount from '@/components/font-amount.vue'
 import FontZoom from '@/components/font-zoom.vue'
 import GetMore from '@/components/get-more.vue'
-import { setChromeStorage, getChromeStorage, sendCurrentTabMessage, chromeExtensionUrl } from '@/uilts/chromeExtension.js'
+import { setChromeStorage, getChromeStorage, sendCurrentTabMessage, chromeExtensionUrl, getChromeStorageFromExtension, setChromeStoragetoExtension, openUrlInNewWindow } from '@/uilts/chromeExtension.js'
 import Report from "@/log-center/log"
 import { srcPublishSuccess } from '@/http/publishApi'
 import { discordAuthUrl, checkGuildJoined } from '@/http/discordApi'
@@ -425,7 +425,7 @@ import { getInviteGuildInfo } from "@/http/discordApi";
 import GlobalTip from '@/components/global-tip.vue'
 import customCardCover from '@/components/custom-card-cover.vue';
 import { RewardType, PlayType } from '@/types';
-import { messageCenter } from '@/uilts/messageCenter';
+import messageCenter from '@/uilts/messageCenter';
 
 var moment = require('moment');
 
@@ -530,12 +530,30 @@ async function clickLikeBtn() {
       break
     case '3':
       state.loading_show = true
-      chrome.tabs.getCurrent((tab) => {
-        chrome.tabs.sendMessage(tab.id, {
-          actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
-            tweet_Id: state.tweetId
-          }, task_type: 'like'
-        }, (res) => { console.log(res) });
+      messageCenter.send({
+          info: {
+              actionType: "IFRAME_TWITTER_API_DO_TASK",
+              iframeId
+          },
+          data: {
+              task_data: {
+                  tweet_Id: state.tweetId
+              },
+              task_type: 'like'
+          },
+          overTime: 5000,
+          callback: (data) => {
+              console.log('like success..', data)
+              if (!data.task_type || state.tweetId != data.tweet_Id) {
+                  return
+              }
+              state.loading_show = false
+              doTaskReport(data);
+          },
+          failback: e => { 
+              state.loading_show = false
+              console.log('like fail..', e)
+          }
       })
       break
     default:
@@ -645,12 +663,30 @@ async function clickRetweetBtn() {
       break
     case '3':
       state.loading_show = true
-      chrome.tabs.getCurrent((tab) => {
-        chrome.tabs.sendMessage(tab.id, {
-          actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
-            tweet_Id: state.tweetId
-          }, task_type: 'retweet'
-        }, (res) => { console.log(res) });
+      messageCenter.send({
+          info: {
+              actionType: "IFRAME_TWITTER_API_DO_TASK",
+              iframeId
+          },
+          data: {
+              task_data: {
+                  tweet_Id: state.tweetId
+              },
+              task_type: 'retweet'
+          },
+          overTime: 5000,
+          callback: (data) => {
+              console.log('retweet success..', data)
+              if (!data.task_type || state.tweetId != data.tweet_Id) {
+                  return
+              }
+              state.loading_show = false
+              doTaskReport(data);
+          },
+          failback: e => { 
+              state.loading_show = false
+              console.log('retweet fail..', e)
+          }
       })
       break
     default:
@@ -695,7 +731,14 @@ async function clickReply(params) {
     let url = `https://twitter.com/${state.tweet_author}/status/${state.tweetId}?actionType=denetFacebookToTwitterReply&deReplyParams=${JSON.stringify(replyData)}`
     window.open(url)
   } else {
-    window.parent.postMessage({ actionType: "IFRAME_RED_PACKET_REPLY_CLICK", data: replyData }, "*");
+    messageCenter.send({
+        info: {
+            actionType: "IFRAME_RED_PACKET_REPLY_CLICK",
+            iframeId
+        },
+        data: replyData
+    })
+    // window.parent.postMessage({ actionType: "IFRAME_RED_PACKET_REPLY_CLICK", data: replyData }, "*");
   }
   // 埋点
   Report.reportLog({
@@ -730,11 +773,10 @@ async function clickRepostFacebook(params) {
     type: params.type,
     taskLuckdropId: state.detail.taskLuckdropId
   }
-
-  setChromeStorage({
-    shareFacebookData: JSON.stringify({
-      contentStr: state.srcContent
-    })
+  setChromeStoragetoExtension({
+      shareFacebookData: JSON.stringify({
+          contentStr: state.srcContent
+      })
   })
 
   let shareUrl = feacebookShareUrl(shareUrlparams);
@@ -758,12 +800,10 @@ async function clickRepostFacebook(params) {
  */
 function openShareFacebookWindow({ url }) {
   const width = 800;
-  chrome.windows.create({
-    width,
-    type: 'normal',
-    url
-  }, function (window) {
-
+  openUrlInNewWindow({
+      width,
+      type: 'normal',
+      url,
   })
 }
 
@@ -896,17 +936,32 @@ async function clickFollowAll(item, is_all) {
         follow_data.push(item)
       })
       state.loading_show = true
-      chrome.tabs.getCurrent((tab) => {
-        chrome.tabs.sendMessage(tab.id, {
-          actionType: "IFRAME_TWITTER_API_DO_TASK",
-          task_data: {
-            tweet_Id: state.tweetId,
-            follow_data: follow_data,
+      messageCenter.send({
+          info: {
+              actionType: "IFRAME_TWITTER_API_DO_TASK",
+              iframeId
           },
-          task_type: 'follow'
-        }, (res) => { console.log(res) });
+          data: {
+              task_data: {
+                  tweet_Id: state.tweetId,
+                  follow_data: follow_data,
+              },
+              task_type: 'follow'
+          },
+          overTime: 5000,
+          callback: (data) => { 
+              console.log('follow success..', data)
+              if (!data.task_type || state.tweetId != data.tweet_Id) {
+                  return
+              }
+              state.loading_show = false
+              doTaskReport(data);
+          },
+          failback: e => { 
+              state.loading_show = false
+              console.log('follow fail..', e)
+          }
       })
-
       break
     default:
       openFollowTabs(arr_name)
@@ -931,39 +986,72 @@ async function clickFollowAll(item, is_all) {
 
 
 // 重新绑定
-const reSetBindTwtterId = (_params) => {
+const reSetBindTwtterId = async (_params) => {
   let postBizData = JSON.parse(_params.postBizData);
   let { taskCondition } = postBizData;
   let discordTask = JSON.parse(taskCondition).find(item => item.type == 7);
-
-  getChromeStorage('userInfo', (_userInfo = {}) => {
-    // if (_userInfo.uid == _params.uid) {
-    if (_userInfo.uid) {
-      srcPublishSuccess({
-        params: {
-          postId: state.postId,
-          srcContentId: state.tweetId
-        }
-      }).then((res) => {
-        if (res.code == 0 || res.code == 3003) {
-          init({ from: 'reSetBindTwtterId' })
-          reportBindTweetSuccess({ discordTask, ..._params });
-        }
-      })
-    }
-  })
+  const _userInfo = await getChromeStorageFromExtension('userInfo')
+  if (_userInfo && _userInfo.uid) {
+    srcPublishSuccess({
+      params: {
+        postId: state.postId,
+        srcContentId: state.tweetId
+      }
+    }).then((res) => {
+      if (res.code == 0 || res.code == 3003) {
+        init({ from: 'reSetBindTwtterId' })
+        reportBindTweetSuccess({ discordTask, ..._params });
+      }
+    })
+  }
 }
 
 const reportBindTweetSuccess = (params) => {
   let { discordTask, srcUserId } = params || {};
   discordTaskDetail = discordTask;
-  sendCurrentTabMessage({
-    actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
-    data: {
-      screen_name: srcUserId,
-      tweetId: state.tweetId
-    }
-  })
+  messageCenter.send({
+        info: {
+            actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
+            iframeId
+        },
+        data: {
+            screen_name: srcUserId,
+            tweetId: state.tweetId
+        },
+        callback: (req) => {
+            let { user } = req.data || {};
+                if (req.tweetId == state.tweetId && user && user.result && user.result.legacy) {
+                    let legacy = user.result.legacy;
+                    reportParams.twitterFans = legacy ? legacy.followers_count : 0;
+
+                    if (!discordTaskDetail) {
+                        if (reportParams.hasReport) return;
+                        reportParams.hasReport = true;
+                        Report.reportLog({
+                            objectType: Report.objectType.tweetPostBinded,
+                            twitterFans: reportParams.twitterFans,
+                            redPacketType: 1,
+                            postId: state.postId
+                        });
+                    } else {
+                        if (reportParams.discordFans !== '') {
+                            if (reportParams.hasReport) return;
+                            reportParams.hasReport = true;
+                            Report.reportLog({
+                                objectType: Report.objectType.tweetPostBinded,
+                                twitterFans: reportParams.twitterFans,
+                                discordFans: reportParams.discordFans,
+                                redPacketType: 1,
+                                postId: state.postId
+                            });
+                        }
+                    }
+                }
+        },
+        failback: (e) => {
+            console.log('reportBindTweetSuccess fail', e)
+        }
+    })
 
   if (discordTask) {
     getDiscordInfo({ inviteUrl: JSON.parse(discordTask.bizData).inviteUrl }, (res) => {
@@ -1201,7 +1289,6 @@ function init(initParams) {
   state.loading_show = true;
   let { type } = initParams || {};
   onPageVisbile();
-  onWindowMessage();
   setFrontConfig();
   getPostDetail({
     params: {
@@ -1243,50 +1330,50 @@ function init(initParams) {
   })
 }
 
-function initTaskDetail(cb) {
-  getChromeStorage('userInfo', (_userInfo) => {
-    if (_userInfo.uid) {
-      // 任务详情
-      getTaskDetail({
-        params: {
-          postId: state.postId
-        }
-      }).then((res) => {
-        if (res.code.toString()) {
-          for (let i in res.data) {
-            switch (res.data[i].type) {
-              case 1:
-                state.done.follow = res.data[i].finished
-                state.detail.taskCondition[0].relatedUsers = res.data[i].detail
-                break
-              case 2:
-                state.done.like = res.data[i].finished
-                break
-              case 3:
-                state.done.retweet = res.data[i].finished
-                break
-              case 7:
-                state.done.join_discord = res.data[i].finished
-                discordAuthorizeRequired = res.data[i].discordAuthorizeRequired
-                break
-              case 8:
-                state.done.repost_facebook = res.data[i].finished;
-                break;
-              case 9:
-                state.done.reply = res.data[i].finished;
-                if (!state.done.reply) {
-                  onTweetReplyClick({ type: 9 });
-                }
-                break;
-            }
+async function initTaskDetail(cb) {
+  const _userInfo = await getChromeStorageFromExtension('userInfo')
+
+  if (_userInfo && _userInfo.uid) {
+    // 任务详情
+    getTaskDetail({
+      params: {
+        postId: state.postId
+      }
+    }).then((res) => {
+      if (res.code.toString()) {
+        for (let i in res.data) {
+          switch (res.data[i].type) {
+            case 1:
+              state.done.follow = res.data[i].finished
+              state.detail.taskCondition[0].relatedUsers = res.data[i].detail
+              break
+            case 2:
+              state.done.like = res.data[i].finished
+              break
+            case 3:
+              state.done.retweet = res.data[i].finished
+              break
+            case 7:
+              state.done.join_discord = res.data[i].finished
+              discordAuthorizeRequired = res.data[i].discordAuthorizeRequired
+              break
+            case 8:
+              state.done.repost_facebook = res.data[i].finished;
+              break;
+            case 9:
+              state.done.reply = res.data[i].finished;
+              if (!state.done.reply) {
+                onTweetReplyClick({ type: 9 });
+              }
+              break;
           }
-        } else {
-          handleErrorCode(res)
         }
-        cb && cb()
-      })
-    }
-  })
+      } else {
+        handleErrorCode(res)
+      }
+      cb && cb()
+    })
+  }
 }
 
 let tab_index = 0
@@ -1377,29 +1464,53 @@ onMounted(() => {
 
 function getTweetAuthor() {
   if (state.window_origin.indexOf('twitter.com') > -1) {
-    window.parent.postMessage({
-      actionType: "IFRAME_RED_PACKET_GET_TWEET_AUTHOR", data: {
-        postId: state.postId,
-        taskLuckdropId: state.detail.taskLuckdropId
-      }
-    }, "*");
+    messageCenter.send({
+        info: {
+            actionType: "IFRAME_RED_PACKET_GET_TWEET_AUTHOR",
+            iframeId
+        },
+        data: {
+            postId: state.postId,
+            taskLuckdropId: state.detail.taskLuckdropId
+        },
+        callback: (data) => { 
+            console.log('getTweetAuthor', data)
+            fullName = data.fullName
+        },
+        failback: (e) => {
+            console.log('getTweetAuthor fail..', e)
+        }
+    })
   }
 }
 
 function checkFacebookReply() {
   console.log('checkFacebookReply')
   if (state.window_origin.indexOf('twitter.com') > -1) {
-    window.parent.postMessage({
-      actionType: "IFRAME_RED_PACKET_CHECK_FACEBOOK_REPLY", data: {
-        postId: state.postId
-      }
-    }, "*");
+    messageCenter.send({
+        info: {
+            actionType: "IFRAME_RED_PACKET_CHECK_FACEBOOK_REPLY",
+            iframeId
+        },
+        data: { postId: state.postId },
+        callback: (data) => { 
+            clickReply(data)
+        },
+        failback: (e) => {
+            console.log('checkFacebookReply fail', e)
+        }
+    })
   }
 }
 
 // 点击领取
 function clickOpenRedPacket() {
-  callEventPageMethod('CONTENT_GET_PINED', {})
+  messageCenter.send({
+      info: {
+          actionType: 'CONTENT_GET_PINED',
+      },
+      data: {}
+  })
   handleRedPacket()
 }
 
@@ -1442,27 +1553,23 @@ function handleRedPacket() {
 // })
 
 // 校验是否封路
-function checkIsLogin() {
-
-  return new Promise((resolve) => {
-    getChromeStorage('userInfo', (_userInfo) => {
-      if (!_userInfo) {
+async function checkIsLogin() {
+    const userInfo = await getChromeStorageFromExtension('userInfo').catch((e) => { console.log(e)})
+    if (userInfo) {
+        return userInfo
+    } else {
         state.loading_show = true
         setTimeout(() => {
-          state.loading_show = false
+            state.loading_show = false
         }, 3000)
-        chrome.runtime.sendMessage(
-          { actionType: "POPUP_LOGIN", data: "" },
-          (response) => {
-            console.log("res", response);
-          }
-        )
-        resolve(_userInfo)
-      } else {
-        resolve(_userInfo)
-      }
-    })
-  })
+        messageCenter.send({
+            info: {
+                actionType: 'POPUP_LOGIN',
+            },
+            data: {}
+        })
+        return null
+    }
 }
 
 async function clickGetGiveaways() {
@@ -1756,24 +1863,6 @@ function handleErrorCode(res) {
 //     businessType: Report.businessType.pageView
 //   });
 // }
-function onWindowMessage() {
-  window.addEventListener("message", function (event) {
-    if (event.data) {
-      switch (event.data.actionType) {
-        case 'CONTENT_RED_PACKET_REPLY_RASK_FINSH':
-          state.done.reply = true;
-          state.done.reply_red = false;
-          break;
-        case 'CONTENT_RED_PACKET_GET_TWEET_AUTHOR':
-          fullName = event.data.data.fullName
-          break;
-        case 'CONTENT_RED_PACKET_FACEBOOK_REPLY':
-          clickReply(event.data.data)
-          break;
-      }
-    }
-  });
-}
 
 function onPageVisbile() {
   document.addEventListener('visibilitychange', function () {
@@ -1785,54 +1874,26 @@ function onPageVisbile() {
 }
 
 function onRuntimeMsg() {
-  chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
-    switch (req.actionType) {
-      case 'BACK_DISCORD_LOGIN_SUCCESS':
-        discordLoginSuccess();
-        break;
-      case 'BG_FACEBOOK_SHARE_SUCCESS':
-        facebookShareSuccess(req.data);
-        break;
-      case 'CONTENT_RED_PACKET_REPLY_RASK_FINSH':
+  messageCenter.listen('CONTENT_RED_PACKET_REPLY_RASK_FINSH', (req) => {
         if (req.data && req.data.postId == state.postId) {
-          state.done.reply = true;
-          state.done.reply_red = false;
+            state.done.reply = true;
+            state.done.reply_red = false;
         }
-        break;
-      case 'CONTENT_API_GET_TWEET_USER_INFO_RES':
-        let { user } = req.data || {};
-        if (req.tweetId == state.tweetId && user && user.result && user.result.legacy) {
-          let legacy = user.result.legacy;
-          reportParams.twitterFans = legacy ? legacy.followers_count : 0;
-
-          if (!discordTaskDetail) {
-            if (reportParams.hasReport) return;
-            reportParams.hasReport = true;
-            Report.reportLog({
-              objectType: Report.objectType.tweetPostBinded,
-              twitterFans: reportParams.twitterFans,
-              redPacketType: 0,
-              postId: state.postId
-            });
-          } else {
-            if (reportParams.discordFans !== '') {
-              if (reportParams.hasReport) return;
-              reportParams.hasReport = true;
-              Report.reportLog({
-                objectType: Report.objectType.tweetPostBinded,
-                twitterFans: reportParams.twitterFans,
-                discordFans: reportParams.discordFans,
-                redPacketType: 0,
-                postId: state.postId
-              });
-            }
-          }
+    })
 
-        }
-        break;
-    }
-    sendResponse && sendResponse();
-  })
+    messageCenter.listen('BACK_DISCORD_LOGIN_SUCCESS', () => {
+        console.log('on success in frame');
+        discordLoginSuccess();
+    })
+
+    messageCenter.listen('BG_FACEBOOK_SHARE_SUCCESS', (data) => {
+        facebookShareSuccess(data);
+    })
+
+    messageCenter.listen('USER_SETTING', (data) => {
+        console.log('USER_SETTING', data) 
+        setNotification(data)
+    })
 }
 
 /**
@@ -1949,16 +2010,21 @@ function discordAuth(actionState = 'default') {
       if (authorizeUrl) {
         joinDiscordActionState = actionState;
         const width = 500;
-        chrome.windows.create({
-          width,
-          type: 'normal',
-          url: authorizeUrl
-        }, function (window) {
-          let windowId = window.id;
-          callEventPageMethod("RED_PACKET_SAVE_DISCORD_AUTH_WINDOW_ID", {
-            windowId: windowId
-          });
+        openUrlInNewWindow({
+            width,
+            type: 'normal',
+            url: authorizeUrl,
         })
+        // chrome.windows.create({
+        //   width,
+        //   type: 'normal',
+        //   url: authorizeUrl
+        // }, function (window) {
+        //   let windowId = window.id;
+        //   callEventPageMethod("RED_PACKET_SAVE_DISCORD_AUTH_WINDOW_ID", {
+        //     windowId: windowId
+        //   });
+        // })
       }
     }
   })

+ 7 - 17
src/uilts/chromeExtension.js

@@ -79,23 +79,13 @@ export async function getChromeStorageFromExtension(key = '') {
     // window.postMessage({actionType: 'iframe_test', data: key})
 }
 
-export const openUrlInNewWindow = async (data, successCallback) => { 
-    return new Promise((res, rej) => {
-        messageCenter.send({
-            info: {
-                iframeId,//用于告诉父窗口会传消息给哪个iframe
-                actionType: 'OPEN_URL_IN_NEW_WINDOW',
-            },
-            data,
-            callback: (window) => {
-                successCallback && successCallback(data)
-                res(window);
-            },
-            failback: (e) => {
-                console.log('openUrlInNewWindow fail', e)
-                rej(null)
-            }
-        })
+export const openUrlInNewWindow = (data) => { 
+    messageCenter.send({
+        info: {
+            iframeId,//用于告诉父窗口会传消息给哪个iframe
+            actionType: 'OPEN_URL_IN_NEW_WINDOW',
+        },
+        data
     })
 }