Skip to content

Capacitor

The widget embeds inside a Capacitor app via an iframe loading the hosted bundle. No native plugin or SDK required.

Quickstart

In your Capacitor app's HTML:

html
<iframe
  src="https://widget.inviaro.com/embed?key=wt_..."
  style="border: 0; width: 100%; height: 100vh;"
  allow="clipboard-write"
></iframe>

The mode=embed URL renders the panel full-pane with no launcher button.

Identity verification

For logged-in users, pass the signed userHash via URL parameters:

html
<iframe
  src="https://widget.inviaro.com/embed?key=wt_...&user_id=usr_42&user_hash=a1b2c3..."
></iframe>

Compute userHash server-side. See Identity verification for code samples.

WARNING

Never compute the hash in your Capacitor app's bundled JavaScript. The secret would ship with the binary and be extractable. Sign on your backend, fetch the digest with an authenticated request.

Common issues

Chat does not open

Verify the origin URL matches the host page exactly (scheme and domain, no trailing slash). The widget enforces an origin allow-list.

Keyboard pushes content off-screen

Ensure your viewport meta tag includes viewport-fit=cover and that you are not overriding the iframe's CSS positioning.

Notifications

Browser-style notifications are not available inside the WebView. The unread badge on the launcher acts as a visible cue while the panel is closed.

What is not supported yet

  • Native attachments. File uploads are planned.
  • Native push notifications. Planned.