Skip to content

Commit e3d37d1

Browse files
graycreateclaude
andcommitted
feat: add analytics tracking to VShare WebView
Add custom User-Agent and source parameter to track V2er app traffic to VShare page for analytics purposes. Changes: - Set custom User-Agent: "Mozilla/5.0... V2er-Android/{version}" - Add source parameter to URL: "?theme={theme}&source=v2er-android" - Add getAppVersion() method to retrieve app version for User-Agent This enables VShare page to: 1. Identify traffic from V2er Android app via User-Agent header 2. Track app version distribution 3. Filter analytics by source parameter 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent eba89d4 commit e3d37d1

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

app/src/main/java/me/ghui/v2er/module/vshare/VshareWebActivity.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,10 @@ protected void init() {
103103

104104
setupWebView();
105105

106-
// Compute URL with theme parameter based on current app theme
106+
// Compute URL with theme and source parameters for analytics tracking
107107
String url = VSHARE_BASE_URL;
108-
if (DarkModelUtils.isDarkMode()) {
109-
url += "?theme=dark";
110-
} else {
111-
url += "?theme=light";
112-
}
108+
String themeParam = DarkModelUtils.isDarkMode() ? "dark" : "light";
109+
url += "?theme=" + themeParam + "&source=v2er-android";
113110
mWebView.loadUrl(url);
114111
}
115112

@@ -143,6 +140,12 @@ private void setupWebView() {
143140

144141
WebSettings settings = mWebView.getSettings();
145142

143+
// Set custom User-Agent for analytics tracking
144+
String defaultUserAgent = settings.getUserAgentString();
145+
String appVersion = getAppVersion();
146+
String customUserAgent = defaultUserAgent + " V2er-Android/" + appVersion;
147+
settings.setUserAgentString(customUserAgent);
148+
146149
// Enable JavaScript
147150
settings.setJavaScriptEnabled(true);
148151

@@ -273,6 +276,18 @@ private int getStatusBarHeight() {
273276
return result;
274277
}
275278

279+
/**
280+
* Get app version name for User-Agent tracking
281+
*/
282+
private String getAppVersion() {
283+
try {
284+
return getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
285+
} catch (Exception e) {
286+
Log.e(TAG, "Failed to get app version", e);
287+
return "unknown";
288+
}
289+
}
290+
276291
/**
277292
* Handle URL loading for WebView
278293
* Returns true if the URL was handled externally, false if WebView should load it

0 commit comments

Comments
 (0)