具有web界面的Python桌面软件
我正在用Python后端和web界面构建桌面软件。目前,我必须启动后端,然后在浏览器中打开界面。如果我不小心刷新了页面,那么就会清除所有内容!我想做的是启动应用程序并显示一个全屏浏览器窗口(使用Chrome)-这应该不难。我有两个问题:具有web界面的Python桌面软件,python,html,google-chrome,Python,Html,Google Chrome,我正在用Python后端和web界面构建桌面软件。目前,我必须启动后端,然后在浏览器中打开界面。如果我不小心刷新了页面,那么就会清除所有内容!我想做的是启动应用程序并显示一个全屏浏览器窗口(使用Chrome)-这应该不难。我有两个问题: 可以禁用刷新吗 当web UI关闭时,是否可以钩住关闭我的程序 更新: 我要找的更像这样:。在桌面应用程序中嵌入Chrome网页的一种方法。除了我使用的是Python而不是C#你的第一个问题是一个重复的问题 对于第二个问题,这取决于您正在构建什么类型的应用程序,
我要找的更像这样:。在桌面应用程序中嵌入Chrome网页的一种方法。除了我使用的是Python而不是C#你的第一个问题是一个重复的问题 对于第二个问题,这取决于您正在构建什么类型的应用程序,但一般来说,答案是否定的 如果您可以依靠JS捕捉关闭,例如,在关闭前向服务发送“退出”消息,那么这很容易。然而,在很多情况下,这是行不通的,因为客户无法抓住收尾的机会 另一方面,如果您可以依赖客户端和服务之间的连续连接(例如,使用WebSocket),那么当连接断开时,您可以直接退出。但通常情况下,你不能 最后,如果您专门为一个平台编写一些东西,那么您可以使用操作系统级别的信息来处理JS无法处理的情况。(例如,在OS X上,您可以将侦听器附加到默认的
NSDistributedNotificationCenter
,并在Chrome退出时收到通知。)但一般来说,您不能依赖于此,即使可以,它也可能无法覆盖100%的情况
因此,您需要使用每个“真实”web应用程序用于管理会话的相同技巧。例如,客户端可以每5分钟发送一次keepalive,如果服务器在5分钟内没有收到任何请求,则可以退出。(你仍然可以有一个明确的“退出”命令,你只是不能依赖于总是收到它。)如果你想知道更多关于如何完成这项任务的信息,可能会有300个问题。除了嵌入Chrome,你可以只嵌入Webkit(我不知道在Windows上,但在Mac和Linux上很容易)。
应用程序逻辑将位于服务器端,浏览器仅用作接口。如果是这样,您可以在body标签中添加“onbeforeunload”,并调用一个js函数,向服务器发送ajax死亡请求。您真的想打开Chrome而不是用户默认的web浏览器吗?@abarnert:这个软件只用于我们机构,所以是的,我们愿意限制浏览器,以确保其工作更加一致