How can I embed a webform in an Ionic React app? Webform has a Share submodule that can be used in decoupled situations.
There is a video tutorial here.
However, I'm having trouble getting my webform embedded in my Ionic React app.
What I have done

Went to /admin/structure/webform/config and selected Enable form sharing under Form share settings.
Went to /admin/structure/webform, clicked the more info triangle, selected Share.

I now have the option to choose from JavaScript, Resizing iframe, and Fixed iframe, but all of these use document.write, which won't work with Ionic because the document has already been written.
Here is specifically how to do this in Ionic + React.
First, Webform share uses the iframe-resizer library, which has an official react component.
So install the library into your app:
npm install iframe-resizer-react
Then add a component such as WebformContact.tsx (this example uses TypeScript):
import * as React from 'react';
import {
  IonContent, IonPage,
} from '@ionic/react';
import IframeResizer from 'iframe-resizer-react';

const styleWebformIframeEmbed: React.CSSProperties = {
  width: '1px',
  minWidth: '100%',
};

const WebformContact = () =&gt; (
  &lt;IonPage&gt;
    &lt;IonContent&gt;
      &lt;IframeResizer
        src=&quot;https://example.com/webform/MY-WEBFORM-MACHINENAME/share/iframe-resizer/4.2.10&quot;
        title=&quot;MY WEBFORM TITLE&quot;
        frameBorder=&quot;0&quot;
        allowFullScreen
        style={styleWebformIframeEmbed}
      /&gt;
    &lt;/IonContent&gt;
  &lt;/IonPage&gt;
);
export default WebformContact;

Note that you need to install the same version of iframe-resizer in both webform (drupal) + your ionic app.
Also note that if your site is https, you should be sure to specify that in the src tag; when React is hosted by Ionic, it will be run from http://localhost (Android) or http://capacitor (iOS), so if you do not specify https for the server, you will get a difficult to understand error:

iframeResizer.js:822 Failed to execute 'postMessage' on 'DOMWindow':
The target origin provided

But really what this means is that you are trying to access an https server in an iframe with http.  So specify https!