使用ManyChat增長工具時,該庫提供了更多機會:
-
使用無頭複選框小部件的功能
-
為動態創建的元素初始化小部件的機會
- 控制小部件的可見性等
初始化 #
庫的加載是通過使用腳本完成的。可以在“增長工具”部分(“設置”選項卡,安裝JavaScript代碼段)中找到此腳本的鏈接。加載是異步執行的,這就是為什麼在調用庫的方法之前必須等待庫加載的原因。這就是mcAsyncInit
回調的目的。加載後,全局MC
變量變得可用並提供對功能的訪問。
<script src="//widget.manychat.com/YOUR_PAGE_ID.js" async="async"></script>
<script>
window.mcAsyncInit = function() {
// MC variable is available now
console.log(MC);
};
</script>
嵌入小部件初始化 #
要初始化嵌入的窗口小部件(按鈕或框),您需要在頁面中向您希望窗口小部件出現的位置添加其他代碼。通常,此代碼如下所示:
<div class="mcwidget-embed" data-widget-id="YOUR_WIDGET_ID" data-widget-payload="OPTIONAL_PAYLOAD"></div>
您可以將代碼放在同一頁面上的多個位置。小部件的實例將在每個位置初始化。對於小部件的每個實例,您可以設置一個可選的有效負載-這是將保存在小部件設置中指定的“自定義用戶字段”中的數據。要設置窗口小部件實例的有效負載,請data-widget-payload
為元素設置屬性或使用下面描述的方法。 setPayload
核心方法 #
method |
description |
|
在頁面上查找小部件元素(例如 |
|
通過小部件ID或Embed小部件實例的DOM元素返回小部件的對象。使用此對象,您可以偵聽小部件的事件和調用方法。窗口小部件的ID可以從Growth Tools中的代碼段中獲取。 |
MC.getWidgetList() | 返回所有活動小部件的列表。 |
複選框小部件方法 #
下面列出的所有方法和屬性僅適用於“複選框”窗口小部件類型。
method |
description |
|
訂閱活動
|
|
退訂一個事件或所有事件。如果沒有提供回調,它將取消訂閱所有事件。 |
。提交() |
發送複選框確認的方法。單擊按鈕後必須調用以確認加入。 |
|
此屬性允許檢查窗口小部件的當前狀態。 |
.ref | 提交小部件時使用引用字符串,僅在提交後才可用。 |
.userRef | 提交窗口小部件時使用用戶標識符,僅在提交後才可用。 |
疊加小部件方法 #
下面列出的所有方法和屬性僅適用於“ Bar”,“ Slide-In”,“ Modal”和“ Page Takeover”窗口小部件類型。
method |
description |
。打開() |
打開小部件。 |
|
關閉小部件。 |
.setPayload(refPayload) | 設置小部件的參考有效載荷。值必須是字符串。最多200個字符。有效字符為a-z A-Z 0-9 +/=-._ |
客戶聊天小部件方法 #
下面列出的所有方法和屬性僅適用於“客戶聊天”窗口小部件類型。
速率限制 #
每個“客戶聊天”方法限制為每5秒1個呼叫。
method |
description |
.open(shouldOpenDialog) |
打開小部件。您可以使用shouldOpenDialog參數來確定是否也應打開對話框。 |
|
關閉整個小部件。 |
.openDialog() | 打開窗口小部件對話框。 |
.closeDialog() | 關閉窗口小部件對話框。 |
.setLoggedInGreeting(文本) | 設置登錄用戶的問候語。 |
.setLoggedOutGreeting(文本) | 設置註銷用戶的問候語。 |
.setPayload(refPayload) | 設置小部件的參考有效載荷。值必須是字符串。 |
.set(變更) | 設置問候語和/或ref有效負載參數。changes 是具有新值的JSON對象。可用PARAM名稱:loggedInGreeting ,loggedOutGreeting ,refPayload |
嵌入小部件方法 #
下面列出的所有方法和屬性僅適用於“按鈕”和“框”窗口小部件類型。
要在窗口小部件上執行方法,您需要獲取窗口小部件實例對象。您無法通過將傳遞widgetId
給方法來獲取它,MC.getWidget
因為頁面上可能同時存在多個小部件實例。因此,要獲取實例對象,您應在調用時傳遞Widget DOM元素作為參數MC.getWidget
,例如
<!-- your code snippet -->
<div id="test-widget" class="mcwidget-embed" data-widget-id="420"></div>
const widgetInstanceElement = document.getElementById('test-widget')
const widget = MC.getWidget(widgetInstanceElement)
widget.setPayload('custom_payload')
method |
description |
.setPayload(refPayload) | 設置小部件的參考有效載荷。值必須是字符串。最多200個字符。有效字符為a-z A-Z 0-9 +/=-._ |