Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有web界面的Python桌面软件_Python_Html_Google Chrome - Fatal编程技术网

具有web界面的Python桌面软件

具有web界面的Python桌面软件,python,html,google-chrome,Python,Html,Google Chrome,我正在用Python后端和web界面构建桌面软件。目前,我必须启动后端,然后在浏览器中打开界面。如果我不小心刷新了页面,那么就会清除所有内容!我想做的是启动应用程序并显示一个全屏浏览器窗口(使用Chrome)-这应该不难。我有两个问题: 可以禁用刷新吗 当web UI关闭时,是否可以钩住关闭我的程序 更新: 我要找的更像这样:。在桌面应用程序中嵌入Chrome网页的一种方法。除了我使用的是Python而不是C#你的第一个问题是一个重复的问题 对于第二个问题,这取决于您正在构建什么类型的应用程序,

我正在用Python后端和web界面构建桌面软件。目前,我必须启动后端,然后在浏览器中打开界面。如果我不小心刷新了页面,那么就会清除所有内容!我想做的是启动应用程序并显示一个全屏浏览器窗口(使用Chrome)-这应该不难。我有两个问题:

  • 可以禁用刷新吗
  • 当web UI关闭时,是否可以钩住关闭我的程序
  • 更新


    我要找的更像这样:。在桌面应用程序中嵌入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:这个软件只用于我们机构,所以是的,我们愿意限制浏览器,以确保其工作更加一致