chrome.devtools.recorder

說明

使用 chrome.devtools.recorder API 自訂開發人員工具中的「錄音工具」面板。

devtools.recorder API 是預先發布版功能,可讓您在 Chrome 開發人員工具中擴充錄音工具面板

如需開發人員工具 API 的一般使用簡介,請參閱 DevTools API 摘要

適用國家/地區

Chrome 105 以上版本

概念和用法

自訂匯出功能

如要註冊擴充功能外掛程式,請使用 registerRecorderExtensionPlugin 函式。這個函式需要外掛程式執行個體、namemediaType 做為參數。外掛程式執行個體必須實作兩種方法:stringifystringifyStep

擴充功能提供的 name 會顯示在「Recorder」面板中的「Export」選單中。

視匯出情境而定,當使用者點選擴充功能提供的匯出選項時,「Recorder」面板會叫用下列其中一個函式:

mediaType 參數可讓擴充功能指定透過 stringifystringifyStep 函式產生的輸出類型。例如,如果結果是 JavaScript 程式,則輸入 application/javascript

自訂重播按鈕

如要在錄音工具中自訂重播按鈕,請使用 registerRecorderExtensionPlugin 函式。外掛程式必須實作 replay 方法,自訂設定才會生效。如果偵測到此方法,錄音工具中會顯示重播按鈕。點選按鈕後,系統會將目前的記錄物件做為第一個引數傳遞給 replay 方法。

這時擴充功能可以顯示用於處理重播的 RecorderView,或是使用其他擴充功能 API 處理重播要求。如要建立新的 RecorderView,請叫用 chrome.devtools.recorder.createView

示例

匯出外掛程式

以下程式碼會實作擴充功能外掛程式,該外掛程式會使用 JSON.stringify 做為記錄字串:

class MyPlugin {
  stringify(recording) {
    return Promise.resolve(JSON.stringify(recording));
  }
  stringifyStep(step) {
    return Promise.resolve(JSON.stringify(step));
  }
}

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  new MyPlugin(),
  /*name=*/'MyPlugin',
  /*mediaType=*/'application/json'
);

重播外掛程式

以下程式碼會實作擴充功能外掛程式,以便建立虛擬錄音工具檢視畫面並在重播要求時顯示:

const view = await chrome.devtools.recorder.createView(
  /* name= */ 'ExtensionName',
  /* pagePath= */ 'Replay.html'
);

let latestRecording;

view.onShown.addListener(() => {
  // Recorder has shown the view. Send additional data to the view if needed.
  chrome.runtime.sendMessage(JSON.stringify(latestRecording));
});

view.onHidden.addListener(() => {
  // Recorder has hidden the view.
});

export class RecorderPlugin {
  replay(recording) {
    // Share the data with the view.
    latestRecording = recording;
    // Request to show the view.
    view.show();
  }
}

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  new RecorderPlugin(),
  /* name=*/ 'CoffeeTest'
);

在 GitHub 上尋找完整的擴充功能範例

類型

RecorderExtensionPlugin

「錄音工具」面板叫用的外掛程式介面,用於自訂「錄音工具」面板。

屬性

  • 重播

    void

    Chrome 112 以上版本

    允許擴充功能實作自訂重播功能。

    replay 函式如下所示:

    (recording: object)=> {...}

  • Stringify

    void

    將錄音工具面板格式的錄製內容轉換成字串。

    stringify 函式如下所示:

    (recording: object)=> {...}

  • stringifyStep

    void

    將錄音工具面板格式的錄製內容步驟轉換成字串。

    stringifyStep 函式如下所示:

    (step: object)=> {...}

RecorderView

Chrome 112 以上版本

代表由擴充功能建立的檢視畫面,可嵌入錄音工具面板中。

屬性

  • onHidden

    事件<functionvoidvoid>

    隱藏檢視畫面時觸發。

    onHidden.addListener 函式如下所示:

    (callback: function)=> {...}

    • 回呼

      功能

      callback 參數如下所示:

      ()=>void

  • onShown

    事件<functionvoidvoid>

    檢視區塊顯示時觸發。

    onShown.addListener 函式如下所示:

    (callback: function)=> {...}

    • 回呼

      功能

      callback 參數如下所示:

      ()=>void

  • 顯示

    void

    表示擴充功能想在錄音工具面板中顯示這個檢視畫面。

    show 函式如下所示:

    ()=> {...}

方法

createView()

Chrome 112 以上版本
chrome.devtools.recorder.createView(
  title: string,
  pagePath: string,
)

建立可處理重播的檢視畫面。這個檢視畫面會嵌入錄音工具面板中。

參數

  • title

    字串

    顯示在開發人員工具工具列中擴充功能圖示旁的標題。

  • pagePath

    字串

    面板 HTML 網頁相對於擴充功能目錄的路徑。

傳回

registerRecorderExtensionPlugin()

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  plugin: RecorderExtensionPlugin,
  name: string,
  mediaType: string,
)

註冊錄音工具擴充功能外掛程式。

參數

  • 實作 RecorderExtensionPlugin 介面的執行個體。

  • 名稱

    字串

    外掛程式的名稱。

  • mediaType

    字串

    外掛程式產生的字串內容媒體類型。