You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Shiny如何在用户关闭浏览器时停止应用?

Python实现用户关闭浏览器时停止应用的方案

在R的Shiny框架里,只需在server.R中加入以下代码,就能实现用户关闭浏览器时自动停止应用:

# in server.R
session$onSessionEnded(function() { stopApp() })

回到你的问题:Python的Shiny框架里,你尝试的利用input.close的方案不生效,是因为input.close并不是Shiny for Python的内置触发事件。正确的做法是监听会话结束的原生事件,具体代码如下:

from shiny import App, ui, reactive, session
import sys

def server(input, output, session):
    @reactive.Effect
    @reactive.event(session.on_ended)
    async def _():
        # 终止应用进程,实现和R中stopApp()相同的效果
        sys.exit()

app_ui = ui.page_fluid(
    ui.h1("测试关闭浏览器停止应用")
)

app = App(app_ui, server)

关键说明

  • session.on_ended是Shiny for Python提供的原生事件,当用户关闭浏览器标签页、断开连接时会自动触发。
  • 使用sys.exit()可以直接终止整个Python应用进程,完全对应R中stopApp()的作用。

内容的提问来源于stack exchange,提问作者user2551579

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:42:51