Skip to content

Commit

Permalink
feat: add WebViewBridgeEnabled (#198)
Browse files Browse the repository at this point in the history
* feat: add WebViewBridgeEnabled

* fix: return value

* fix: ignoreView

* fix: log

* release 3.5.1

---------

Co-authored-by: tianhui <[email protected]>
  • Loading branch information
styluo and tianhui authored Aug 16, 2023
1 parent 47f01dc commit 3fdfac6
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 2 deletions.
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ buildscript {
]

releaseConfiguration = [
releaseVersion : "3.5.1-SNAPSHOT",
releaseVersionCode: 30500,
releaseVersion : "3.5.1",
releaseVersionCode: 30501,

pluginVersion : "3.5.0-SNAPSHOT"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ public float getImpressionScale() {
return mImpressionScale;
}

public AutotrackConfig setWebViewBridgeEnabled(boolean webViewBridgeEnabled) {
mAutotrackOptions.setWebViewBridgeEnabled(webViewBridgeEnabled);
return this;
}

public boolean isWebViewBridgeEnabled() {
return mAutotrackOptions.isWebViewBridgeEnabled();
}

// public AutotrackConfig setAutotrackOptions(AutotrackOptions options) {
// this.mAutotrackOptions = options;
// return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public class AutotrackOptions {
private boolean seekbarChangeEnabled = true;
private boolean ratingBarChangeEnabled = true;
private boolean sliderChangeEnabled = true;
private boolean webViewBridgeEnabled = true;

public boolean isActivityMenuItemClickEnabled() {
return activityMenuItemClickEnabled;
Expand Down Expand Up @@ -216,4 +217,12 @@ public boolean isSliderChangeEnabled() {
public void setSliderChangeEnabled(boolean sliderChangeEnabled) {
this.sliderChangeEnabled = sliderChangeEnabled;
}

public void setWebViewBridgeEnabled(boolean webViewBridgeEnabled) {
this.webViewBridgeEnabled = webViewBridgeEnabled;
}

public boolean isWebViewBridgeEnabled() {
return webViewBridgeEnabled;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@
package com.growingio.android.sdk.autotrack.inject;

import com.growingio.android.sdk.TrackerContext;
import com.growingio.android.sdk.autotrack.AutotrackConfig;
import com.growingio.android.sdk.autotrack.view.ViewHelper;
import com.growingio.android.sdk.track.log.Logger;
import com.growingio.android.sdk.track.modelloader.ModelLoader;
import com.growingio.android.sdk.track.middleware.hybrid.HybridBridge;
import com.growingio.android.sdk.track.providers.ConfigurationProvider;
import com.uc.webview.export.WebView;

import java.util.Map;
Expand All @@ -33,6 +36,14 @@ private static void bridgeForWebView(WebView view) {
return;
}

AutotrackConfig config = ConfigurationProvider.get().getConfiguration(AutotrackConfig.class);
boolean webViewBridgeEnabled = config.isWebViewBridgeEnabled();
boolean ignoredView = ViewHelper.isIgnoredView(view);
if (!webViewBridgeEnabled || ignoredView) {
Logger.d(TAG, "Autotracker webViewBridgeEnabled: " + webViewBridgeEnabled + ", isIgnoredView: " + ignoredView);
return;
}

boolean result = false;
ModelLoader<HybridBridge, Boolean> modelLoader = TrackerContext.get().getRegistry().getModelLoader(HybridBridge.class, Boolean.class);
if (modelLoader != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@
import android.webkit.WebView;

import com.growingio.android.sdk.TrackerContext;
import com.growingio.android.sdk.autotrack.AutotrackConfig;
import com.growingio.android.sdk.autotrack.view.ViewHelper;
import com.growingio.android.sdk.track.log.Logger;
import com.growingio.android.sdk.track.modelloader.ModelLoader;
import com.growingio.android.sdk.track.middleware.hybrid.HybridBridge;
import com.growingio.android.sdk.track.providers.ConfigurationProvider;

import java.util.Map;

Expand All @@ -35,6 +38,14 @@ private static void bridgeForWebView(View view) {
return;
}

AutotrackConfig config = ConfigurationProvider.get().getConfiguration(AutotrackConfig.class);
boolean webViewBridgeEnabled = config.isWebViewBridgeEnabled();
boolean ignoredView = ViewHelper.isIgnoredView(view);
if (!webViewBridgeEnabled || ignoredView) {
Logger.d(TAG, "Autotracker webViewBridgeEnabled: " + webViewBridgeEnabled + ", isIgnoredView: " + ignoredView);
return;
}

boolean result = false;
ModelLoader<HybridBridge, Boolean> modelLoader = TrackerContext.get().getRegistry().getModelLoader(HybridBridge.class, Boolean.class);
if (modelLoader != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,12 @@


import com.growingio.android.sdk.TrackerContext;
import com.growingio.android.sdk.autotrack.AutotrackConfig;
import com.growingio.android.sdk.autotrack.view.ViewHelper;
import com.growingio.android.sdk.track.log.Logger;
import com.growingio.android.sdk.track.modelloader.ModelLoader;
import com.growingio.android.sdk.track.middleware.hybrid.HybridBridge;
import com.growingio.android.sdk.track.providers.ConfigurationProvider;
import com.tencent.smtt.sdk.WebView;

import java.util.Map;
Expand All @@ -34,6 +37,14 @@ private static void bridgeForWebView(WebView view) {
return;
}

AutotrackConfig config = ConfigurationProvider.get().getConfiguration(AutotrackConfig.class);
boolean webViewBridgeEnabled = config.isWebViewBridgeEnabled();
boolean ignoredView = ViewHelper.isIgnoredView(view);
if (!webViewBridgeEnabled || ignoredView) {
Logger.d(TAG, "Autotracker webViewBridgeEnabled: " + webViewBridgeEnabled + ", isIgnoredView: " + ignoredView);
return;
}

boolean result = false;
ModelLoader<HybridBridge, Boolean> modelLoader = TrackerContext.get().getRegistry().getModelLoader(HybridBridge.class, Boolean.class);
if (modelLoader != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,15 @@

import androidx.test.core.app.ApplicationProvider;

import com.growingio.android.sdk.Configurable;
import com.growingio.android.sdk.CoreConfiguration;
import com.growingio.android.sdk.TrackerContext;
import com.growingio.android.sdk.autotrack.AutotrackConfig;
import com.growingio.android.sdk.autotrack.RobolectricActivity;
import com.growingio.android.sdk.autotrack.inject.UcWebViewInjector;
import com.growingio.android.sdk.autotrack.inject.WebViewInjector;
import com.growingio.android.sdk.autotrack.inject.X5WebViewInjector;
import com.growingio.android.sdk.track.providers.ConfigurationProvider;

import org.junit.Before;
import org.junit.Test;
Expand All @@ -36,6 +40,7 @@
import org.robolectric.annotation.Config;

import java.util.HashMap;
import java.util.Map;

@Config(manifest = Config.NONE, sdk = 23)
@RunWith(RobolectricTestRunner.class)
Expand All @@ -47,6 +52,10 @@ public class HybridTest {
public void setup() {
TrackerContext.init(application);
TrackerContext.initSuccess();

Map<Class<? extends Configurable>, Configurable> modules = new HashMap<>();
modules.put(AutotrackConfig.class, new AutotrackConfig());
ConfigurationProvider.initWithConfig(new CoreConfiguration("HybridTest", "growingio.hybridtest"), modules);
}

@Test
Expand Down

0 comments on commit 3fdfac6

Please sign in to comment.