我有一个React应用程序,它使用iFrame渲染另一个在flutter中制作的应用程序(见第一张图片):
flutter应用托管在某个域中(所以它就像一个微前端),React中的应用是控制面板,托管在其他地方(不同于flutter应用)
我的问题是,当直接在托管的URL中测试flutter应用时,它会按预期工作。当你点击一个人的名字时,会打开一个侧边栏,里面有一些信息和一个按钮“Gestion oferta”。
当您单击按钮时,它会将您带到另一个视图:
如果我直接在托管flutter应用的URL中对其进行测试,结果与预期相符,但当我点击react dashboard中的按钮时,它的行为与预期不符,它只是在iFrame中显示同一react应用(dashboard)的另一个示例,如下所示:
以下是react应用中渲染iFrame的组件的代码,其中我调用了flutter应用的URL:
import { Fragment } from "react";
import { css } from '@emotion/react'
import Head from "next/head";
import DashboardLayout from "../../../layouts/DashboardLayout";
import { getTenantByCompanySiap } from "../../../helpers/tentant";
import { UAT, PROD, getEnv } from "../../../helpers/env";
export { getSSProps as getServerSideProps } from '../../../lib/Page'
export default function NuevaSolicitudPage(props) {
const tenant = getTenantByCompanySiap(props.infoRh?.codeCompanySIAP)
const branch = props.infoRh?.codeBranch
const user = props.employeeData?.email
const getCampanas = () => {
const env = getEnv();
const url = {
[UAT]: `https://url-for-testing`,
[PROD]: `https://other-url-for-production`
};
return url[env] || url[UAT];
};
const url = getCampanas()
return (
<Fragment>
<Head>
<title>Gestión de cartera | Campañas</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<DashboardLayout
{...props}
title="Campanas"
>
<iframe
src={url}
css={css`
width: 100%;
height: 100%;
`}
frameBorder="0"
/>
</DashboardLayout>
</Fragment>
);
}
我无法访问flutter应用程序代码,我只能使用它并在iFrame中显示它,但我从某人那里听说我需要配置一些文件才能在iFrame中显示flutter应用程序,但他也不确定。我搜索了类似的内容,但没有找到任何与此问题相关的内容,因为应用程序正在显示,但它的行为与预期不符。
有谁能给予我一个建议,如何解决这个问题?提前感谢。
1条答案
按热度按时间mpgws1up1#
这个问题与cookie有关,不知何故,存储用户会话的cookie丢失/删除,所以每当您有类似的东西,并将cookie用于用户会话时,请检查它们是否正确存储和使用。