Attachment

Introduction

Version compatibility

This feature was introduced in version 4.72.0 of the JourneyApps Runtime.

The Attachment API can be used in JavaScript/TypeScript (or CloudCode) to populate attachment, photo or signature fields that can bound to components like capture-file, capture-photo, capture-signature, display-file etc.

Syntax

To create an attachment, use the Attachment.create(options) function where options may include

ValueDetails

data

Data to create from an ArrayBuffer

base64

Data to create from a base64 string

text

Data to create from a string

mediaType

The MIME type of the file, e.g. image/png or application/pdf

filename

Name of the file to be created.

You need to provide one of data, base64 or text, depending on the type of data you have. You also need to provide either mediaType or filename, or both. If only one is provided, the other will be automatically assumed. For example:

  • if only the filename is given as test.txt, the mediaType will be assumed as text/plain.

  • If only the mediaType is given as text/csv, the filename will be the ID of the object, e.g. 334c3c80-afed-4641-b083-9d1871705a6b.csv.

Example

Consider a variable like the following:

main.view.xml
<var name="sample_pdf" type="attachment" media="application/pdf" />

That PDF can be created like this:

main.js
view.sample_pdf = Attachment.create({base64: "base64 data", mediaType: 'application/pdf', filename: "my_report.pdf"});

Other examples:

main.js
view.textFile = Attachment.create({text: plainText, mediaType: 'text/plain', filename: 'test.txt'});
view.userSignature = Attachment.create({text: svgString, mediaType: 'image/svg+xml'});
view.myImage = Attachment.create({data: imageArrayBuffer, mediaType: 'image/jpeg'});

Last updated