npm react-native-webview 16.0.0
v16.0.0

3 hours ago

16.0.0 (2026-07-11)

BREAKING CHANGES

  • the legacy (Paper) React Native architecture is no
    longer supported; the New Architecture is required.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01RXhcR2ZgZBVnaaatD3Ad56

  • fix: macOS Fabric teardown and dataDetectorTypes conversion

Address review feedback on #3974:

  • Compile prepareForRecycle on macOS too. With the Paper
    removeFromSuperview cleanup gone, macOS had no path calling
    destroyWebView, leaking the KVO observer, script message handlers
    and the underlying WKWebView on unmount/recycle.
    react-native-macos ships prepareForRecycle in
    RCTComponentViewProtocol, so the platform guard is unnecessary.
  • Fix the Fabric dataDetectorTypes conversion: the bit tests inspected
    the local accumulator (always WKDataDetectorTypeNone) instead of
    newViewProps.dataDetectorTypes, so the prop was always reset to none.
    Also combine every requested type instead of at most one, matching
    the RCT_MULTI_ENUM_CONVERTER behavior of the removed Paper manager.
  • Document the resulting minimum React Native version in the README
    and Getting Started guide.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01RXhcR2ZgZBVnaaatD3Ad56

  • fix: restore default dataDetectorTypes/decelerationRate and automaticallyAdjustsScrollIndicatorInsets on Fabric

Address second round of review feedback on #3974:

  • Initialize _dataDetectorTypes to WKDataDetectorTypePhoneNumber and
    _decelerationRate to UIScrollViewDecelerationRateNormal in
    RNCWebViewImpl. Fabric only converts a prop when it differs from the
    codegen default, so the implementation must start from the same
    values; previously both ivars were zero, creating the WKWebView with
    no data detectors and stopping scroll deceleration dead.
  • Add automaticallyAdjustsScrollIndicatorInsets to the codegen spec and
    map it in the Fabric component. It was previously exported only by
    the removed Paper view manager and would have been silently ignored.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01RXhcR2ZgZBVnaaatD3Ad56

  • fix(android): implement setAutomaticallyAdjustsScrollIndicatorInsets no-op

Adding automaticallyAdjustsScrollIndicatorInsets to the codegen spec
added it to the generated RNCWebViewManagerInterface, so the Android
manager must override it like the other iOS-only props.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01RXhcR2ZgZBVnaaatD3Ad56

  • fix(ios): wire clearCache Fabric command and deregister cookie observer on teardown
  • The Fabric clearCache command was a no-op stub; the removed Paper
    manager used to forward it to RNCWebViewImpl clearCache:. Forward it
    from the component view instead.
  • destroyWebView now removes the WKHTTPCookieStoreObserver registration
    (added in visitSource when shared cookies are enabled) before
    dropping _webView. WKHTTPCookieStore does not retain observers, and
    dealloc cannot deregister once _webView is nil, so recycling could
    leave callbacks targeting a dead object.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01RXhcR2ZgZBVnaaatD3Ad56

  • fix: drop iOS-only decelerationRate on Android/macOS and document the newSource contract
  • Android and macOS no longer forward decelerationRate to the native
    component. It is an iOS-only prop, but it can arrive through untyped
    props, and the shared codegen spec types it as a Double, so the
    "normal"/"fast" string shortcuts threw during Fabric prop conversion

Don't miss a new react-native-webview release

NewReleases is sending notifications on new releases.