Yerleştirme
Yerleştirme işlemi, uygulamayı web sitenize dahil etmenin basit bir yoludur. Aşağıdaki kodu web sitenize ekleyin:
<iframe id="butterfly" src="https://web.butterfly.linwood.dev/embed" width="100%" height="500px" allowtransparency="true"></iframe>Şeçenekler
Bölüm başlığı “Şeçenekler”| Seçenek | Tür | Varsayılan | Tanım |
|---|---|---|---|
| kaydet | Boolean (true, false) | true | Kaydetmeyi etkinleştirin. Eğer devre dışı bırakılırsa, yalnızca bir çıkış düğmesi gösterilir |
| editable | Boolean (true, false) | true | Düzenlemeyi etkinleştir. Eğer devre dışı bırakılırsa, belge salt okunur olur |
| dil | String (…, system, user) | user | Belge dili. Eğer sistem ise, dil tarayıcıdan algılanacaktır. Eğer kullanıcı ise, dil kullanıcıların tercihine göre ayarlanacaktır |
Messaging
Bölüm başlığı “Messaging”The embed uses browser postMessage events. Send messages to the iframe with
iframe.contentWindow.postMessage({ type, message }, origin). Butterfly sends
messages back to the parent window with the same shape:
{ type: string, message?: unknown }.
See the embedding example for a live page that sends messages to the iframe and listens for messages from it.
<iframe id="butterfly" src="https://web.butterfly.linwood.dev/embed?save=true&editable=true" width="100%" height="500"></iframe>
<script> const butterflyOrigin = 'https://web.butterfly.linwood.dev'; const butterfly = document.querySelector('#butterfly');
function sendToButterfly(type, message) { butterfly.contentWindow.postMessage({ type, message }, butterflyOrigin); }
window.addEventListener('message', (event) => { if ( event.origin !== butterflyOrigin || event.source !== butterfly.contentWindow ) { return; }
const { type, message } = event.data ?? {};
if (type === 'save') { const documentBytes = Array.from(message); console.log('Save requested by the embed', documentBytes); }
if (type === 'change') { console.log('Document changed', message); }
if (type === 'getData') { console.log('Current document bytes', message); }
if (type === 'render') { const image = new Image(); image.src = `data:image/png;base64,${message}`; document.body.append(image); } });
butterfly.addEventListener('load', () => { sendToButterfly('getData');
sendToButterfly('render', { x: 0, y: 0, width: 600, height: 400, scale: 1, renderBackground: true, }); });</script>To load document bytes into the embed, send an array of byte values:
sendToButterfly('setData', documentBytes);Etkinlikler
Bölüm başlığı “Etkinlikler”Listen for events with window.addEventListener('message', ...).
kaydet
Bölüm başlığı “kaydet”The
saveevent is emitted when the user clicks the save button.
Parametreler:
message(TypeList<int>): The data of the document.
The
exitevent is emitted when the user clicks the exit button.
Parametreler:
message(TypeList<int>): The data of the document.
change
Bölüm başlığı “change”The
changeevent is emitted when the user changes the document.
Parametreler:
message(TypeList<int>): The data of the document.
Yöntemler
Bölüm başlığı “Yöntemler”Call methods with iframe.contentWindow.postMessage(...). Methods that return
data send another message back with the same type.
getData
Bölüm başlığı “getData”The
getDatamethod returns the data of the document.
Tür
Returns: List<int>
setData
Bölüm başlığı “setData”The
setDatamethod sets the data of the document.
Parametreler:
data(TypeList<int>): The data of the document.
render
Bölüm başlığı “render”The
rendermethod renders the document to a png image.
Parametreler:
x(TypeNumber): The x position of the exported area.y(TypeNumber): The y position of the exported area.width(TypeNumber): The width of the image.height(TypeNumber): The height of the image.scale(TypeNumber): The scale of the image.renderBackground(TypeBoolean): If true, the background will be rendered.
Returns: String (Base64 encoded image)
renderSVG
Bölüm başlığı “renderSVG”The
renderSVGmethod renders the document to a svg image.
Parametreler:
x(TypeNumber): The x position of the exported area.y(TypeNumber): The y position of the exported area.width(TypeNumber): The width of the image.height(TypeNumber): The height of the image.renderBackground(TypeBoolean): If true, the background will be rendered.
Returns: String (SVG)