ditto_live_web_alpha

Warning

This plugin is an early alpha which enables users to use Ditto on web platforms. Other platforms will not be supported by this package, that is covered by package:ditto_live

For more information, consult the docs for package:ditto_live

Installation

  • Add the package to your pubspec.yaml, or run flutter pub add ditto_live_web_alpha
  • Edit the index.html of your app to load ditto.es6.js in the <body>:
<!-- before -->
<body>
  <script src="flutter_bootstrap.js" async></script>
</body>

<!-- after -->
<body>
  <script type="module">
    import * as dittoJS from "/assets/packages/ditto_live_web_alpha/lib/assets/ditto.es6.js";
    window.dittoJS = dittoJS;
  </script>

  <script src="flutter_bootstrap.js" async></script>
</body>

Usage

Ditto's WebAssembly library needs to be downloaded and initialized before any of its APIs can be used. By default, the WebAssembly binary is loaded from the plugin's assets.

import 'package:ditto_live_web_alpha/ditto_live_web_alpha.dart';

WidgetsFlutterBinding.ensureInitialized();
await initWasm();

You can also download the WebAssembly binary from a URL. Make sure to configure CORS and to serve the binary with MIME type application/wasm. You can find ditto.wasm in the lib/assets directory of this package.

await initWasm("https://example.com/ditto.wasm");,

Find the next steps for how to initialize a Ditto instance and start working with documents in the documentation for package:ditto_live.

Known issues

Certain features of package:ditto_live are not supported by this plugin. This plugin does not support:

  • identites other than OnlinePlaygroundIdentity and OnlineWithAuthenticationIdentity,
  • any presence APIs such as Ditto.presence.observe().

For API docs about any of these features, consult the API docs for package:ditto_live. For docs about Ditto in general, go to <docs.ditto.live>.

Errors thrown by all of this plugin's APIs may have different types and messages than those thrown by package:ditto_live.