-
Notifications
You must be signed in to change notification settings - Fork 53
Description
Describe the bug
We have some webview-wrapped Hybrid web app with expo. Both Expo side and Browser-side RUM instrumentation is installed.
But with import { WebView } from "@datadog/mobile-react-native-webview";. WebView is rendered as empty on SessionReplay.
Using standard Webview(from react-native-webview) makes Data is not being connected between Native and Webview but Web-Content RUM is shown on WebView-app.
(Note that when using Webview from DataDog, Browser RUM is not showing up but only click events on Native RUM Logs)
Reproduction steps
Bare minimum:
export default function App() {
// .... some datadog RUM sdk init with sessionReplay with all sample rate to 100,
return (
<View style={containerStyle}>
<ProgressBar isLoading={isLoading} progress={loadingProgress} />
<WebView
{...webViewProps}
allowsBackForwardNavigationGestures={true}
pullToRefreshEnabled={true}
decelerationRate="normal"
bounces={true}
scrollEnabled={true}
directionalLockEnabled={false}
showsVerticalScrollIndicator={false}
showsHorizontalScrollIndicator={false}
// allowedHosts={ALLOWED_HOSTS}
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
},
scrollViewContent: {
flex: 1,
},
webview: {
flex: 1,
},
});
datadogRum.init({
// ...
sessionSampleRate: 100,
sessionReplaySampleRate: 100,
});
SDK logs
No response
Expected behavior
WebView content is rendered, at least seperated RUM session data showing up with connected-data
Affected SDK versions
2.12.4
Latest working SDK version
no
Did you confirm if the latest SDK version fixes the bug?
Yes
Integration Methods
NPM
React Native Version
0.81.5
Package.json Contents
{
"name": "private",
"version": "1.0.0",
"main": "index.ts",
"scripts": {
"start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
"lint": "eslint . --ext .ts,.tsx",
"postinstall": "patch-package"
},
"dependencies": {
"@datadog/mobile-react-native": "^2.12.4",
"@datadog/mobile-react-native-session-replay": "^2.12.4",
"@datadog/mobile-react-native-webview": "^2.12.4",
"@datadog/mobile-react-navigation": "^2.12.4",
"@react-native-firebase/analytics": "^23.4.0",
"@react-native-firebase/app": "^23.4.0",
"@react-native-firebase/crashlytics": "^23.4.0",
"@react-native-firebase/messaging": "^23.4.0",
"@react-native-seoul/kakao-login": "^5.4.1",
"@react-native-seoul/naver-login": "^4.2.2",
"@tosspayments/widget-sdk-react-native": "^1.5.0",
"expo": "54.0.17",
"expo-apple-authentication": "~8.0.7",
"expo-application": "^7.0.7",
"expo-build-properties": "~1.0.9",
"expo-constants": "~18.0.10",
"expo-datadog": "^54.0.0",
"expo-dev-client": "~6.0.16",
"expo-device": "~8.0.9",
"expo-haptics": "^15.0.7",
"expo-image-picker": "^17.0.8",
"expo-localization": "^17.0.7",
"expo-navigation-bar": "~5.0.9",
"expo-notifications": "~0.32.12",
"expo-sensors": "^15.0.7",
"expo-splash-screen": "^31.0.10",
"expo-status-bar": "~3.0.8",
"expo-tracking-transparency": "^6.0.7",
"expo-updates": "~29.0.12",
"expo-web-browser": "~15.0.8",
"i": "^0.3.7",
"patch-package": "^8.0.0",
"react": "19.1.0",
"react-native": "0.81.5",
"react-native-safe-area-context": "^5.6.1",
"react-native-webview": "13.15.0"
},
"devDependencies": {
"@datadog/datadog-ci": "^3.21.4",
"@types/react": "~19.1.0",
"@typescript-eslint/eslint-plugin": "^8.44.0",
"@typescript-eslint/parser": "^8.44.0",
"eslint": "^9.36.0",
"eslint-plugin-expo": "^1.0.0",
"typescript": "~5.9.2"
},
"private": true
}
....
"@datadog/browser-logs": "^6.19.0",
"@datadog/browser-rum": "^6.19.0",
"@datadog/browser-rum-react": "^6.19.0",
iOS Setup
No response
Android Setup
No response
Device Information
Both android and iOS
Other relevant information
No response