initialiseJsHandlers function

void initialiseJsHandlers(
  1. dynamic controller,
  2. dynamic onPageEvent(
    1. String
    )?
)

Implementation

void initialiseJsHandlers(controller, Function(String)? onPageEvent) {
  controller.addJavaScriptHandler(
    handlerName: pageEventsHandler,
    callback: (args) {
      if (args.isNotEmpty) {
        onPageEvent?.call(args[0].toString());
      }
    },
  );
  controller.addJavaScriptHandler(
    handlerName: downloadFileHandler,
    callback: (args) {
      final filePath = args[0].toString();
      // data: "<file_url>" or "data:"
      // eg data: "https://example.com/file.pdf" or "data:data:text/plain;base64,SGVsbG8sIFdvcmxkIQ=="
      downloadFile(filePath).then((value) {}).catchError((error) {
        controller.evaluateJavascript(
          source: "window.alert('error downloading file');",
        );
      });
    },
  );
  controller.addJavaScriptHandler(
    handlerName: shareFileHandler,
    callback: (args) {
      final data = args[0].toString();
      // data {"title":"Shared Image","text":"Take a look at this image","url":"<file_url> or "}
      shareFile(data).then((value) {}).catchError((error) {
        controller.evaluateJavascript(
          source: "window.alert('error sharing file');",
        );
      });
    },
  );
}