Multi platform support

This commit is contained in:
Ilya Groshev
2026-04-27 15:57:12 +03:00
parent f96bd7a88b
commit 9001b52b90
7 changed files with 254 additions and 108 deletions
+24
View File
@@ -0,0 +1,24 @@
package service
import (
"net/http"
"strings"
)
const (
platformAndroid = "android"
platformIOS = "ios"
)
// platformFromUserAgent classifies an HTTP request as iOS vs Android based on
// the User-Agent header. Unity's UnityWebRequest does not set a UA on iOS, so
// CFNetwork's default ("<bundle>/<build> CFNetwork/x Darwin/x") is what arrives;
// on Android Unity sets "UnityPlayer/... (UnityWebRequest/...)". Any other UA
// (or none) is treated as Android, matching model.DefaultPlatform.
func platformFromUserAgent(r *http.Request) string {
ua := r.Header.Get("User-Agent")
if strings.Contains(ua, "Darwin/") || strings.Contains(ua, "CFNetwork/") {
return platformIOS
}
return platformAndroid
}