Summary
Product doc section 6.9 specifies a WebView Interaction Engine for LinkedIn since LinkedIn's API does not allow programmatic connection requests. Implement the complete end-to-end flow: the mobile Follow Engine that routes LinkedIn connects through the in-app WebView, session management, and graceful fallback.
Context
apps/mobile/src/screens/WebViewScreen.tsx exists. apps/mobile/src/screens/DevCardViewScreen.tsx has connect buttons. The follow routing backend is at apps/backend/src/routes/follow.ts.
Tasks
Acceptance Criteria
Difficulty
advanced — requires WebView session management, JS injection, navigation state detection, and platform compliance awareness.
Summary
Product doc section 6.9 specifies a WebView Interaction Engine for LinkedIn since LinkedIn's API does not allow programmatic connection requests. Implement the complete end-to-end flow: the mobile Follow Engine that routes LinkedIn connects through the in-app WebView, session management, and graceful fallback.
Context
apps/mobile/src/screens/WebViewScreen.tsxexists.apps/mobile/src/screens/DevCardViewScreen.tsxhas connect buttons. The follow routing backend is atapps/backend/src/routes/follow.ts.Tasks
apps/backend/src/routes/follow.ts, update the LinkedIn platform handler:followStrategy === 'webview', return{ strategy: 'webview', url: '...linkedin profile url...' }instead of an error.apps/mobile/src/screens/DevCardViewScreen.tsx, handle thewebviewstrategy response by navigating toWebViewScreenwith the resolved URL.apps/mobile/src/screens/WebViewScreen.tsx:{ url, platformName }route params.react-native-webviewwith session cookie sharing enabled.apps/backend/README.mdsection on Follow Engine.Acceptance Criteria
DevCardViewScreenopensWebViewScreenwith the LinkedIn profile.Difficulty
advanced— requires WebView session management, JS injection, navigation state detection, and platform compliance awareness.