Files
game-driver/pkg/browser/browser.go
mapleafgo 9f9b1ebac6
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
refactor(browser): migrate from go-rod to chromedp
- Replace go-rod with chromedp for browser automation
- Use project's unified zap logger instead of default logging
- Add proper error handling for browser launch failures
- Add logging for browser lifecycle events (start, close)
- Keep same Kiosk mode functionality with chromedp flags

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-09 13:07:56 +08:00

41 lines
1.1 KiB
Go

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("浏览器正在关闭")
}