JS Customization to Generate QR Codes from Kintone Record Values
Overview
This is a quick guide on setting up a Kintone JavaScript customization that generates a QR code from a record value.
The QR code can be generated based on a URL or a text value.
The customization works on both the Kintone desktop and mobile views. (To do this, upload the script under both the JavaScript/CSS Files for PC
and JavaScript/CSS Files for Mobile Devices
sections of the Kintone App's Customize page.)
Customization
QR code API by Foundata GmbH is used to generate the QR code with GET requests.
The following Kintone fields are required for the customization:
- Space field to display the QR code.
- A field for string input for the QR code content:
- Number field to specify the QR code size:
- Set the maximum value to
1000
. - The value is the number of pixels for the QR code width and height
- Set the maximum value to
QR Code Script
Note: The following variables must be specified to match the field codes of your Kintone App:
inputFieldCode
sizeFieldCode
outputFieldCode
(function () {
'use strict';
// Field codes
const inputFieldCode = 'input';
const sizeFieldCode = 'size';
const outputFieldCode = 'output';
// Kintone Events when the customization will be triggered
const QRCodeEvents = ['app.record.detail.show', 'mobile.app.record.detail.show'];
kintone.events.on(QRCodeEvents, function (event) {
try {
const inputValue = event.record[inputFieldCode].value;
const sizeValue = event.record[sizeFieldCode].value;
const outputSpace = kintone.app.record.getSpaceElement(outputFieldCode) || kintone.mobile.app.record.getSpaceElement(outputFieldCode);
// Generate an img element for the QR Code
const outputImg = document.createElement('img');
// Set the image source as the GET query for the QR Code API
outputImg.src = `https://api.qrserver.com/v1/create-qr-code/?size=${sizeValue}x${sizeValue}&data=${inputValue}`;
console.log(outputImg.src);
// Attach the image to the space element
outputSpace.appendChild(outputImg);
return event;
} catch (error) {
console.warn("Exception KintoneEventsOn Queue", error);
}
});
})();