From a31c2c2e96c0d24e08bfbeaa0fd0ca02b096dc9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E5=B8=85?= Date: Fri, 12 Aug 2022 10:24:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86IE=E6=8B=8D=E7=85=A7=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=88=B0tsx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/faceLoginIE/index.html | 16 +++++++--- .../userformal/faceLogin/FrameFaceLogin.tsx | 30 ++++++++++++------- .../userformal/faceLogin/FrameLoader.tsx | 3 +- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/public/faceLoginIE/index.html b/public/faceLoginIE/index.html index b1d88df..79fd187 100644 --- a/public/faceLoginIE/index.html +++ b/public/faceLoginIE/index.html @@ -28,10 +28,11 @@ pos += 4 * 320; //post>= 4 * 320(x轴像素) * 240(y轴像素) 表示读取图像数据完毕 if (pos >= 4 * 320 * 240) { - var url ='http://127.0.0.1:8081/outer/v1.0/stock/logicStock/rgbArray2Base64'; - $.post(url, {type: 'pixel', rgb: image.join('|')}, function(result){ - $('#base64image').attr('src', 'data:image/jpg;base64,' + result.data); - }); + window.parent.postMessage({"image":image.join('|')}, '*'); + // var url ='http://127.0.0.1:8081/outer/v1.0/stock/logicStock/rgbArray2Base64'; + // $.post(url, {type: 'pixel', rgb: image.join('|')}, function(result){ + // $('#base64image').attr('src', 'data:image/jpg;base64,' + result.data); + // }); image = new Array(); pos = 0; } @@ -56,6 +57,13 @@ $('#snapBtn').on('click', function() { webcam.capture(); }); + + function receiveMessageFromParent ( event ) { + console.log(event.data); + $('#base64image').attr('src', 'data:image/jpg;base64,' + event.data.data); + }; + + window.addEventListener('message', receiveMessageFromParent, false); }); diff --git a/src/pages/userformal/faceLogin/FrameFaceLogin.tsx b/src/pages/userformal/faceLogin/FrameFaceLogin.tsx index e5029bf..f35c7ce 100644 --- a/src/pages/userformal/faceLogin/FrameFaceLogin.tsx +++ b/src/pages/userformal/faceLogin/FrameFaceLogin.tsx @@ -1,28 +1,36 @@ import React from "react"; import FrameLoader from "./FrameLoader"; export default class FrameFaceLogin extends React.Component { - constructor(props) { + constructor(props:any) { super(props); console.log(props, "props数据"); this.state = { transferData: { - optimizationOrderFn: false, - allocationFn: false, - releaseFn: false, - revocationFn: false, + image: '' }, }; } componentDidMount() { - // 接收Iframe 传递的数据 + // 接收Iframe传递的数据 window.addEventListener("message", (e) => { - const { allocationFn, releaseFn } = e.data || {}; //传递的数据 - if (allocationFn || releaseFn) { + const { image} = e.data || {}; //传递的数据 + if (image) { this.setState({ - transferData: e.data, + transferData: { + image:e.data + }, }); - - console.log(this.state.transferData, "传数据"); + const url = 'http://127.0.0.1:8081/outer/v1.0/stock/logicStock/rgbArray2Base64'; + window.fetch(url,{ + method:'post', + body : JSON.stringify({//post请求参数 + type: 'pixel', + rgb: image + }) + }).then(res => res.json()).then(res => { + const childFrameObj = document.getElementById('faceLoginFrame'); + childFrameObj.contentWindow.postMessage(res, '*'); + }) } }); } diff --git a/src/pages/userformal/faceLogin/FrameLoader.tsx b/src/pages/userformal/faceLogin/FrameLoader.tsx index d9fda57..f452311 100644 --- a/src/pages/userformal/faceLogin/FrameLoader.tsx +++ b/src/pages/userformal/faceLogin/FrameLoader.tsx @@ -2,7 +2,7 @@ import React from "react"; import ReactDOM from "react-dom"; import Iframe from "react-iframe"; export default class FrameLoader extends React.Component { - constructor(props) { + constructor(props:any) { super(props); this.state = { iFrameHeight: this.props.height ? this.props.height : 0, // 设置iframe的高度 @@ -14,6 +14,7 @@ export default class FrameLoader extends React.Component { render() { return (