Attachment
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.To create an attachment, use the
Attachment.create(options)
function where options
may includeValue | Details |
---|---|
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 astest.txt
, themediaType
will be assumed astext/plain
. - If only the
mediaType
is given astext/csv
, the filename will be the ID of the object, e.g.334c3c80-afed-4641-b083-9d1871705a6b.csv
.
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 modified 7mo ago