如何将 Flutter Web 应用程序嵌入网站并通过网站将数据发送到 Flutter Web 应用程序

Posted

技术标签:

【中文标题】如何将 Flutter Web 应用程序嵌入网站并通过网站将数据发送到 Flutter Web 应用程序【英文标题】:How to Embed flutter web app into website and send data through website to flutter web app 【发布时间】:2021-09-27 15:11:16 【问题描述】:

我使用 Iframe 在我的网站中嵌入了 Flutter Web 应用程序。在网站上,我有一个简单的文本区域,在 Flutter Web 应用程序中,我还有一个文本小部件。我想要的功能是,当我在这个文本区域写东西时,它也应该立即显示在我的 Flutter Web 应用程序中。目前我通过将 url 参数传递给 iframe 的 src 属性来做到这一点。但它非常慢,因为它重新启动了我的颤振网络应用程序。 问题不在于将 Flutter Web 应用程序嵌入网站。 我的问题是如何通过浏览器更改flutter web app的数据.The functionality I want to achieve with speed

我不想像下面的代码那样通过传递 url 参数来做,因为它很慢。

<!DOCTYPE html>
<html>
<body>    
    <input id='input' type="text">
    <input type="button" onclick="changeText()" value="Change" />
    <h1>The web application that is embeding flutter app</h1>
    <div id = 'main'>
        <div>
            <iframe  src="http://localhost:54827/#/"   
            style="overflow:auto;border:5px ridge blue"> </iframe>
        </div>
    </div>    
</body>
<script>    
    var changeText = ()=>
        var textToDisplay = document.getElementById("input").value;
        var frame = document.createElement('iframe');
        frame.setAttribute('src', `http://localhost:55035/#/?answer=$textToDisplay`);
        frame.setAttribute('height', '600')
        var main = document.getElementById("main");
        main.innerHTML ='';
        document.getElementById("main").appendChild(frame);            
    
</script>
</html>

【问题讨论】:

试一试postMessage。此 API 允许您将“消息”事件从父页面发送到子页面(反之亦然!)。在 Flutter 应用程序中,您只需使用 dart:html 设置一个全局“消息”侦听器,然后根据需要处理事件。在您的 Web 应用程序中,您可以将消息直接发布到您的子 iframe 中。 (查看我链接的文章中的安全注意事项,以确保只有您可以将消息发布到您自己的 iframe。) 谢谢,它对我有用。在这里我得到了complete implementation 啊,是的,这看起来与我描述的完全一样,但带有实际代码。酷! 我又遇到了一个问题。我有一个多屏颤动网络应用程序。但是我想在我的网站中嵌入一个特定的屏幕,并且不想让用户从该屏幕向前或向后移动。基本上我希望用户不能按下嵌入页面。我正在使用 iframe。您能否帮助我或提供一些线索来实现这一目标。 【参考方案1】:

阿里巴巴的 OpenKraken 是您的最佳选择

官方:https://openkraken.com/ GitHub:https://github.com/openkraken/kraken 公告:https://developer.aliyun.com/article/783696

【讨论】:

【参考方案2】:

您可以像嵌入其他内容一样,在 HTML 文件的 iframe 标记中嵌入 Flutter Web 应用程序。在以下示例中,将“URL”替换为 HTML 页面的位置:

<iframe src="URL"></iframe>

【讨论】:

以上是关于如何将 Flutter Web 应用程序嵌入网站并通过网站将数据发送到 Flutter Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter for Web 应用程序中嵌入网页作为 Widget(类似于 iframe)

在 Flutter Web 中嵌入 Youtube 视频

如何将文本保存到 Flutter Web 应用程序的网站子目录,然后让应用程序稍后读取?

Flutter全平台制霸!新增Web和嵌入式目标平台

如何将 Flutter 移动应用迁移到 Flutter Web

Flutter 成为多平台框架,支持移动Web桌面和嵌入式设备