Golang Gin 判断网页请求是否来自移动端

更新日期: 2020-02-16 阅读次数: 362 字数: 183 分类: golang

由于我想对 PC 端和移动端展示不同的广告,需要判断网页请求是否来自移动端。

Golang Gin 中并没有找到内置的实现,我决定参考 wordpress PHP 代码中的实现,用 golang 实现一下。

参考:wordpress 判断是否为移动端浏览器的实现

对应的 Golang 实现

func IsMobile(userAgent string) bool {
	if len(userAgent) == 0 {
		return false
	}

	isMobile := false
	mobileKeywords := []string{"Mobile", "Android", "Silk/", "Kindle",
		"BlackBerry", "Opera Mini", "Opera Mobi"}

	for i := 0; i < len(mobileKeywords); i++ {
		if strings.Contains(userAgent, mobileKeywords[i]) {
			isMobile = true
			break
		}
	}

	return isMobile
}

func Index(c *gin.Context) {
	isMobile := utils.IsMobile(c.GetHeader("User-Agent"))
	// do something ...
}

Golang Template 中进行条件展示

{{ if .isMobile }}
  Mobile
{{ else }}
  PC
{{ end }}

爱评论不评论

近期节日

2020年04月01日 愚人节
2020年04月02日 国际儿童图书日
2020年04月03日 寒食节
2020年04月04日 清明节
2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
查看更多节日