diff --git a/app/src/main/java/me/ghui/v2er/module/vshare/VshareWebActivity.java b/app/src/main/java/me/ghui/v2er/module/vshare/VshareWebActivity.java index 3a219d10..7adc1cd9 100644 --- a/app/src/main/java/me/ghui/v2er/module/vshare/VshareWebActivity.java +++ b/app/src/main/java/me/ghui/v2er/module/vshare/VshareWebActivity.java @@ -22,6 +22,7 @@ import androidx.annotation.Nullable; import butterknife.BindView; +import me.ghui.v2er.BuildConfig; import me.ghui.v2er.R; import me.ghui.v2er.module.base.BaseActivity; import me.ghui.v2er.module.base.BaseContract; @@ -103,13 +104,14 @@ protected void init() { setupWebView(); - // Compute URL with theme parameter based on current app theme - String url = VSHARE_BASE_URL; - if (DarkModelUtils.isDarkMode()) { - url += "?theme=dark"; - } else { - url += "?theme=light"; - } + // Compute URL with theme and source parameters for analytics tracking + String themeParam = DarkModelUtils.isDarkMode() ? "dark" : "light"; + String url = Uri.parse(VSHARE_BASE_URL) + .buildUpon() + .appendQueryParameter("theme", themeParam) + .appendQueryParameter("source", "v2er-android") + .build() + .toString(); mWebView.loadUrl(url); } @@ -143,6 +145,12 @@ private void setupWebView() { WebSettings settings = mWebView.getSettings(); + // Set custom User-Agent for analytics tracking + String defaultUserAgent = settings.getUserAgentString(); + String appVersion = getAppVersion(); + String customUserAgent = defaultUserAgent + " V2er-Android/" + appVersion; + settings.setUserAgentString(customUserAgent); + // Enable JavaScript settings.setJavaScriptEnabled(true); @@ -273,6 +281,13 @@ private int getStatusBarHeight() { return result; } + /** + * Get app version name for User-Agent tracking + */ + private String getAppVersion() { + return BuildConfig.VERSION_NAME != null ? BuildConfig.VERSION_NAME : "unknown"; + } + /** * Handle URL loading for WebView * Returns true if the URL was handled externally, false if WebView should load it