Embed
التضمين طريقة بسيطة لإدراج التطبيق في موقع الويب الخاص بك. أضف التعليمة البرمجية التالية إلى موقع الويب الخاص بك:
<iframe id="butterfly" src="https://web.butterfly.linwood.dev/embed" width="100%" height="500px" allowtransparency="true"></iframe>خيارات
Section titled “خيارات”| خيار | نوع | الافتراضي | الوصف |
|---|---|---|---|
| حفظ | Boolean (true, false) | true | تمكين الحفظ. في حالة التعطيل، سيتم عرض زر الخروج فقط |
| editable | Boolean (true, false) | true | تمكين التحرير. في حالة التعطيل، سيكون المستند للقراءة فقط |
| اللغة | سلسلة (…، النظام، المستخدم) | user | () لغة الوثيقة. إذا كان النظام، سيتم اكتشاف اللغة من المتصفح. إذا كان المستخدم، سيتم تعيين اللغة إلى تفضيل المستخدمين |
Messaging
Section titled “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);الأحداث
Section titled “الأحداث”Listen for events with window.addEventListener('message', ...).
The
saveevent is emitted when the user clicks the save button.
البارامترات:
message(TypeList<int>): The data of the document.
الخروج
Section titled “الخروج”The
exitevent is emitted when the user clicks the exit button.
البارامترات:
message(TypeList<int>): The data of the document.
change
Section titled “change”The
changeevent is emitted when the user changes the document.
البارامترات:
message(TypeList<int>): The data of the document.
الأساليب
Section titled “الأساليب”Call methods with iframe.contentWindow.postMessage(...). Methods that return
data send another message back with the same type.
getData
Section titled “getData”The
getDatamethod returns the data of the document.
لا توجد معلمات.
Returns: List<int>
setData
Section titled “setData”The
setDatamethod sets the data of the document.
البارامترات:
data(TypeList<int>): The data of the document.
render
Section titled “render”The
rendermethod renders the document to a png image.
البارامترات:
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
Section titled “renderSVG”The
renderSVGmethod renders the document to a svg image.
البارامترات:
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)