Skip to content

Commit 81be079

Browse files
committed
Add WebView tracker integration to the React Native tracker (#1399)
1 parent c8e02b6 commit 81be079

21 files changed

+750
-126
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@snowplow/react-native-tracker](./react-native-tracker.md) &gt; [getAllTrackers](./react-native-tracker.getalltrackers.md)
4+
5+
## getAllTrackers() function
6+
7+
Retrieves all initialized trackers
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
export declare function getAllTrackers(): ReactNativeTracker[];
13+
```
14+
<b>Returns:</b>
15+
16+
[ReactNativeTracker](./react-native-tracker.reactnativetracker.md)<!-- -->\[\]
17+
18+
All initialized trackers
19+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@snowplow/react-native-tracker](./react-native-tracker.md) &gt; [getWebViewCallback](./react-native-tracker.getwebviewcallback.md)
4+
5+
## getWebViewCallback() function
6+
7+
Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events.
8+
9+
To subscribe for the events, set the `onMessage` attribute: `<WebView onMessage={getWebViewCallback()} ... />`
10+
11+
<b>Signature:</b>
12+
13+
```typescript
14+
export declare function getWebViewCallback(): (message: {
15+
nativeEvent: {
16+
data: string;
17+
};
18+
}) => void;
19+
```
20+
<b>Returns:</b>
21+
22+
(message: { nativeEvent: { data: string; }; }) =&gt; void
23+
24+
Callback to subscribe for events from Web views tracked using the Snowplow WebView tracker.
25+

api-docs/docs/react-native-tracker/markdown/react-native-tracker.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515

1616
| Function | Description |
1717
| --- | --- |
18+
| [getAllTrackers()](./react-native-tracker.getalltrackers.md) | Retrieves all initialized trackers |
1819
| [getTracker(trackerNamespace)](./react-native-tracker.gettracker.md) | Retrieves an initialized tracker given its namespace |
20+
| [getWebViewCallback()](./react-native-tracker.getwebviewcallback.md) | Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events.<!-- -->To subscribe for the events, set the <code>onMessage</code> attribute: <code>&lt;WebView onMessage={getWebViewCallback()} ... /&gt;</code> |
1921
| [newTracker(configuration)](./react-native-tracker.newtracker.md) | Creates a new tracker instance with the given configuration |
2022
| [removeAllTrackers()](./react-native-tracker.removealltrackers.md) | Removes all initialized trackers |
2123
| [removeTracker(trackerNamespace)](./react-native-tracker.removetracker.md) | Removes a tracker given its namespace |
@@ -47,7 +49,6 @@
4749
| [RuleSet](./react-native-tracker.ruleset.md) | A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs |
4850
| [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) | Configuration for session tracking |
4951
| [SessionState](./react-native-tracker.sessionstate.md) | Current session state that is tracked in events. |
50-
| [StructuredEvent](./react-native-tracker.structuredevent.md) | A Structured Event A classic style of event tracking, allows for easier movement between analytics systems. A loosely typed event, creating a Self Describing event is preferred, but useful for interoperability. |
5152
| [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) | Configuration of subject properties tracked with events |
5253
| [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) | The configuration object for initialising the tracker |
5354
| [TrackerCore](./react-native-tracker.trackercore.md) | Export interface containing all Core functions |
@@ -85,7 +86,8 @@
8586
| [ScreenSize](./react-native-tracker.screensize.md) | Screen size in pixels |
8687
| [ScreenViewProps](./react-native-tracker.screenviewprops.md) | ScreenView event properties schema: iglu:com.snowplowanalytics.mobile/screen\_view/jsonschema/1-0-0 |
8788
| [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md) | Event tracked when a scroll view's scroll position changes. If screen engagement tracking is enabled, the scroll changed events will be aggregated into a <code>screen_summary</code> entity.<!-- -->Schema: <code>iglu:com.snowplowanalytics.mobile/scroll_changed/jsonschema/1-0-0</code> |
88-
| [SelfDescribingJson](./react-native-tracker.selfdescribingjson.md) | Export interface for any Self-Describing JSON such as context or Self Describing events |
89+
| [SelfDescribing](./react-native-tracker.selfdescribing.md) | Interface for any self-describing JSON such as context entities or self-describing events |
90+
| [StructuredProps](./react-native-tracker.structuredprops.md) | Properties for a structured event. A classic style of event tracking, allows for easier movement between analytics systems. Self-describing events are preferred for their schema validation. |
8991
| [Timestamp](./react-native-tracker.timestamp.md) | Algebraic datatype representing possible timestamp type choice |
9092
| [TimingProps](./react-native-tracker.timingprops.md) | Timing event properties |
9193
| [Trigger](./react-native-tracker.trigger.md) | Trigger for MessageNotification event |

api-docs/docs/react-native-tracker/markdown/react-native-tracker.reactnativetracker.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ The ReactNativeTracker type
1111
```typescript
1212
export declare type ReactNativeTracker = {
1313
namespace: string;
14-
readonly trackSelfDescribingEvent: <T extends Record<string, unknown> = Record<string, unknown>>(argmap: SelfDescribingJson<T>, contexts?: EventContext[]) => void;
14+
readonly trackSelfDescribingEvent: <T extends Record<string, unknown> = Record<string, unknown>>(argmap: SelfDescribing<T>, contexts?: EventContext[]) => void;
1515
readonly trackScreenViewEvent: (argmap: ScreenViewProps, contexts?: EventContext[]) => void;
1616
readonly trackScrollChangedEvent: (argmap: ScrollChangedProps, contexts?: EventContext[]) => void;
1717
readonly trackListItemViewEvent: (argmap: ListItemViewProps, contexts?: EventContext[]) => void;
18-
readonly trackStructuredEvent: (argmap: StructuredEvent, contexts?: EventContext[]) => void;
18+
readonly trackStructuredEvent: (argmap: StructuredProps, contexts?: EventContext[]) => void;
1919
readonly trackPageViewEvent: (argmap: PageViewEvent, contexts?: EventContext[]) => void;
2020
readonly trackTimingEvent: (argmap: TimingProps, contexts?: EventContext[]) => void;
2121
readonly trackDeepLinkReceivedEvent: (argmap: DeepLinkReceivedProps, contexts?: EventContext[]) => void;
@@ -50,5 +50,5 @@ export declare type ReactNativeTracker = {
5050
readonly refreshPlatformContext: () => Promise<void>;
5151
};
5252
```
53-
<b>References:</b> [EventContext](./react-native-tracker.eventcontext.md)<!-- -->, [ScreenViewProps](./react-native-tracker.screenviewprops.md)<!-- -->, [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md)<!-- -->, [ListItemViewProps](./react-native-tracker.listitemviewprops.md)<!-- -->, [TimingProps](./react-native-tracker.timingprops.md)<!-- -->, [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md)<!-- -->, [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md)<!-- -->, [ScreenSize](./react-native-tracker.screensize.md)<!-- -->, [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md)<!-- -->, [SessionState](./react-native-tracker.sessionstate.md)
53+
<b>References:</b> [SelfDescribing](./react-native-tracker.selfdescribing.md)<!-- -->, [EventContext](./react-native-tracker.eventcontext.md)<!-- -->, [ScreenViewProps](./react-native-tracker.screenviewprops.md)<!-- -->, [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md)<!-- -->, [ListItemViewProps](./react-native-tracker.listitemviewprops.md)<!-- -->, [StructuredProps](./react-native-tracker.structuredprops.md)<!-- -->, [TimingProps](./react-native-tracker.timingprops.md)<!-- -->, [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md)<!-- -->, [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md)<!-- -->, [ScreenSize](./react-native-tracker.screensize.md)<!-- -->, [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md)<!-- -->, [SessionState](./react-native-tracker.sessionstate.md)
5454

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@snowplow/react-native-tracker](./react-native-tracker.md) &gt; [SelfDescribing](./react-native-tracker.selfdescribing.md)
4+
5+
## SelfDescribing type
6+
7+
Interface for any self-describing JSON such as context entities or self-describing events
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
export declare type SelfDescribing<T = Record<string, unknown>> = SelfDescribingJson<T>;
13+
```

api-docs/docs/react-native-tracker/markdown/react-native-tracker.selfdescribingjson.md

Lines changed: 0 additions & 16 deletions
This file was deleted.

api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredevent.action.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredevent.category.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredevent.label.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredevent.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)