package browser import ( "context" "github.com/chromedp/chromedp" "go.uber.org/zap" ) // OpenApp 用 Kiosk 模式打开网页 func OpenApp(ctx context.Context, url string) { // 配置浏览器选项 opts := append(chromedp.DefaultExecAllocatorOptions[:], chromedp.Flag("kiosk", true), chromedp.Flag("hide-scrollbars", true), chromedp.Flag("disable-sync", true), chromedp.Flag("disable-features", "GoogleSignin,IdentityConsistency,OmniboxUIExperimentation,GoogleSearch,Autofill,SafeSearch,SpeechRecognition"), chromedp.Flag("start-maximized", true), ) // 创建分配器上下文 allocCtx, allocCancel := chromedp.NewExecAllocator(ctx, opts...) defer allocCancel() // 创建浏览器上下文(使用项目统一的 zap 日志系统) browserCtx, browserCancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(zap.S().Debugf), ) defer browserCancel() // 启动浏览器并导航 if err := chromedp.Run(browserCtx, chromedp.Navigate(url)); err != nil { zap.S().Errorw("浏览器启动失败", "error", err, "url", url) return } zap.S().Infow("浏览器已启动", "url", url) <-ctx.Done() zap.S().Info("浏览器正在关闭") }