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

更新日期: 2020-02-16 阅读次数: 9791 字数: 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 }}

tags: golang gin web 框架

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式