---
title: Notion Electron วิศวกรรมย้อนกลับ:คลิปบอร์ด — REA
url: https://rea.tools/th/showcase/notion/
---

[บ้าน](https://rea.tools/th/) / [โชว์เคส](https://rea.tools/th/showcase/) / Notion

กรณีศึกษา · Electron

# ยังไง Notion สำเนา ข้อความและเอชทีเอ็ม

ติดตามการเรียกฟังก์ชันจากคลิปบอร์ด Notionการเขียนข้อความโฆษณา,การเขียนในนามคนอื่น,บทความ,การเขียนเนื้อหา Electronนักเขียนคลิปบอร์ด

Notionพื้นที่ทำงาน 7.6.1·JavaScript·REA

สะพานภายใน Notionแพ็คเกจเดสก์ท็อป

1. 01·หน้าหันหน้าไปทางเอพีไอ

   `clipboard.write(data)`

   พรีโหลดเปิดเผยวิธีการที่เรียกว่า
2. 02\*โหลดกระดาษห่อ

   `ipcRenderer.invoke`

   กระดาษห่อส่งช่องและอาร์กิวเมนต์
3. 03·ตัวจัดการกระบวนการหลัก

   `ipcMain.handle`

   ผู้รับตรวจสอบว่าหน้าใดส่งไป
4. 04·คลิปบอร์ดระบบ

   `clipboard.write(data)`

   Electron การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น

ช่องทางหนึ่งร่วมทั้งสองฝ่าย: `notion:clipboard:write`

รหัสที่บรรจุใช้ช่องเดียวกันในการโหลดและกระบวนการหลัก การแก้ไขห่อเผยให้เห็น Electron เรียกฟังก์ชันตามชื่อพวกนั้น

## การดำเนินการคัดลอกไปที่ไหน?

หน้าจะเห็นวิธีการที่เรียกว่า `clipboard.write`. การดำเนินงานในการโหลดเป็นเสื้อคลุมห่อ คำถามที่มีประโยชน์คือสิ่งที่กระดาษห่อส่งและรหัสที่ได้รับมัน

ตัวแทนการเข้ารหัสของคุณ

ใช้ REA เพื่อติดตามวิธีการ Notion อร์ดระบบ แสดงรหัสในแต่ละขั้นตอน

ตัวอย่างพร้อมท์ด้วย Notionแพคเกจโปรแกรมท้องถิ่นที่มีให้ตัวแทนการเข้ารหัสของคุณ

### REA ค้นหาตำแหน่งที่จะเริ่มต้นการอ่าน

การวิเคราะห์โหลดพรีโหลดแท็บด้วย REA การเรียกที่ส่งคำขอไอพีซี การค้นพบทั้งสองมาพร้อมกับช่วงแหล่งที่มาในกลุ่มย่อ:

REA ผลการวิจัย→สองสถานที่ที่จะเปิด

หน้าเว็บ

```
api_key: "__electronApi"
api_status: "dynamic"
source: preload.js:1:22764–22828
```

ทำให้เรียกฟังก์ชันไอพีซี

```
operation: "invoke"
channel_expression: "e"
source: preload.js:1:6486–6522
```

เขตข้อมูลที่เลือกจากสด `analyze_javascript_application` ผลลัพธ์ Notionแท็บโหลดล่วงหน้าบันทึกด้วย REA 4.1.0. ตำแหน่งใช้บรรทัดของชุดเดิมและคอลัมน์ตามศูนย์

การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น,บทความ,การเขียนบทความใหม่,การเขียน `invokerInMain`. อุปกรณ์เว็บไซต์เรียกฟังก์ชัน `notion:clipboard:write`. ชื่อนั้นทำให้ตัวแทนบางสิ่งบางอย่างที่แม่นยำในการค้นหาในกลุ่มหลัก. สี่ข้อความที่ตัดตอนมาด้านล่างแสดงเส้นทางที่เชื่อมต่อ.

### สี่ชิ้นสั้นของรหัส

ง่ายจากบรรจุ JavaScript มีชื่อตัวแปรที่อ่านได้ สมาชิกที่ไม่เกี่ยวข้องจะถูกละเว้น

1. #### การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น

   แท็บ_เบราเซอร์_มุมมอง/preload.js ·สมาชิกเอพีไอ

   ```
   const clipboardApi = {
     write: invokerInMain("notion:clipboard:write")
   };

   // Included in the API exposed through contextBridge:
   // window.__electronApi.clipboard
   ```

   สมาชิกนี้ระบุชื่อช่อง การดำเนินงานของ `invokerInMain` บอกเราว่าคำขอออกจากกระบวนการของหน้าเว็บอย่างไร
2. #### แก้ไขกระดาษห่อของโหลด

   แท็บ_เบราเซอร์_มุมมอง/preload.js ·ผู้ช่วยไอพีซี

   ```
   function invokerInMain(channel) {
     return (...args) => invokeInMainAndReturnResult(channel, ...args);
   }

   function invokeInMainAndReturnResult(channel, ...args) {
     return ipcRenderer.invoke(channel, ...args);
   }
   ```

   ฟังก์ชั่นกลับส่งต่ออาร์กิวเมนต์ผ่าน Electronคำขอและการตอบสนองของไอพีซี ตอนนี้เราสามารถมองหา `notion:clipboard:write` ในด้านกระบวนการหลัก
3. #### ตรวจสอบวิธีการลงทะเบียนผู้รับ

   หลัก/index.js \*ผู้ช่วยผู้จัดการ

   ```
   const handleRequestFromRenderer = {
     addListener(channel, handler) {
       ipcMain.handle(channel, handler);
     }
   };
   ```

   กระบวนการหลักใช้กระดาษห่ออื่น มัน `addListener` วิธีการลงทะเบียน `ipcMain.handle` รับสัญญาณสำหรับช่องทางที่
4. #### ค้นหาการเขียนและการตรวจสอบผู้ส่ง

   หลัก/index.js \*รับคลิปบอร์ด

   ```
   handleRequestFromRenderer.addListener(
     "notion:clipboard:write",
     (event, data) =>
       isNotionWebContents(event.sender)
         ? clipboard.write(data)
         : undefined
   );
   ```

   นี่คือจุดหมายปลายทาง หลังจากตรวจสอบผู้ส่งแล้วตัวจัดการจะส่งข้อมูลที่ให้มา Electronคลิปบอร์ดเอพีไอ ช่องและตัวห่อที่แก้ไขแล้วสองตัวเชื่อมต่อวิธีการเปิดเผยกับสายนี้

## บล็อกที่ถูกคัดลอกเก็บโครงสร้างไว้ได้อย่างไร

Notionแก้ไขข้อความ `electronApi.clipboard.write`. การป้องกันไวรัสในเชิงรุกและการรักษาความปลอดภัยที่จะไปมือถือด้วยความมั่นใจ

เชื่อมโยงไปยังบล็อกข้อมูลที่บันทึกไว้

ส่งไปยังคลิปบอร์ดระบบ

```
text: "Project notes"
html: "<p>Project notes</p>"
    + "<!-- notionvc: <copy-id> -->"
```

บันทึกไว้ในประเทศโดย Notion

```
id: <copy-id>
mimeTypes:
  text/_notion-blocks-v3-production
    → structured block data
```

1. อ่านรหัสเอชทีเอ็มแอล
2. ค้นหารหัสท้องถิ่นเดียวกัน
3. คืนค่า Notion บล็อกข้อมูล

ข้อความและรหัสตัวอย่าง การทดสอบโมดูลที่บันทึกไว้คืนค่าข้อมูลบล็อกเมื่อตรงกับรหัส;รายการเก่าส่งกลับเฉพาะข้อค

เมื่อวาง, Notion ตรวจสอบกับสำเนาที่บันทึกไว้ รหัสที่ตรงกันจะคืนค่าข้อมูลที่ถูกบล็อก

รูปแบบคลิปบอร์ดที่บันทึกจากเนื้อหาเว็บแคชเมื่อวันที่ 13 กรกฎาคม 2026

## ตัวอย่างและแหล่งที่มาเพิ่มเติม

อีกตัวอย่างหนึ่ง:ตารางยอด

Notion วิเคราะห์ยอดรวมลงในข้อมูลบล็อก ตัวอย่างนี้แสดงให้เห็นว่าตารางกลายเป็นแถวส่วนหัวและข้อมูล

ตารางผ่าน Notionวิเคราะห์ยอดรวมของ

อินพุตมาร์กดาวน์

```
| A | B |
| - | - |
| 1 | 2 |
```

การวิเคราะห์โครงสร้างผลลัพธ์\*ข้อความที่ตัดตอนมา

```
table · headerRow: true
  table_row
    cells: ["A"], ["B"]
  table_row
    cells: ["1"], ["2"]
```

ผลลัพธ์ที่บันทึกจากตัวแยกยอดรวม ตารางจะกลายเป็นแถวและเซลล์


เส้นทางอื่น:การเชื่อมต่อแบบออฟไลน์

Notionคำขอแสดงผลของ `getSqliteMeta` ผ่านไอพีซี กระบวนการหลักสร้างแชแนลข้อความและให้พอร์ตหนึ่งไปยังตัวแสดงผลและอื่นๆไปยังกระบ ชุดคำสั่งที่ตามมาและผลการเดินทางผ่านพอร์ตที่

ต่อไปนี้แฮนด์ออฟนี้อธิบายที่ทำงานฐานข้อมูล,และทำไมการติดตามเพียงการร้องขอไอพีซีเ


แหล่งที่มาและวิธีการอ่านข้อความที่ตัดตอนมา

สะพานคลิปบอร์ดมาจาก Notion สก์ท็อป 7.6.1 ของ `app.asar`:โหลดแท็บล่วงหน้าและ `main/index.js`. ข้อความที่ตัดตอนมาขยายชื่อตัวแปรที่ย่อและละเว้นรหัสที่ไม่เกี่ยวข้อง;ผู้ช่วยตรวจสอบผู้ส่ง `isNotionWebContents` เรียกฟังก์ชันมา

ตัวอย่างคลิปบอร์ดเสมือนและรวมยอดมาจากเนื้อหาเว็บแคชเมื่อวันที่ 13 กรกฎาคม 2026 รวมถึงโมดูล `747001`, `58169`, `736810` และ `422457`. สินทรัพย์เหล่านั้นมีเวอร์ชั่นของตัวเอง โพรบที่บันทึกไว้ดำเนินการแยกโมดูลและสายรัดขนาดเล็ก;ผลของพวกเขาอธิบายหัววัดเหล่

ร REA ผลลัพธ์ที่แสดงที่นี่คือการวิเคราะห์ที่มุ่งเน้นการโหลดพรีโหลดแท็บที่บันทึกไว้ที่มีการเผยแพร่ REA 4.1.0 แพคเกจ การบริหารจัดการโปรเจค,วิจัย,การวิจัยตลาด,การวิจัยอินเทอร์เน็ต สมาชิกคลิปบอร์ดและรับจับคู่มีการเชื่อมต่อโดยการอ่านการใช้งานห่อของพวกเขาในแพค

ตัวอย่างยอดรวมใช้โมดูลแยก `422457`. การทดสอบโมดูลที่บันทึกไว้แสดงว่าทั้งหน้าและตัวกรองแชทจะเก็บตารางนี้ไว้ วาง/นำเข้า,การรวมโครงสร้างและการวิเคราะห์ไอ/แชทมีจุดเข้าที่แยกต่างหากและรูปแบบ

- [JavaScript คู่มือการสมัคร](https://rea.tools/guides/javascript/)ตามขนาดเล็ก Electron คุณสมบัติการส่งออกของแอพลิเคชัน
- [DX-Ball การฟื้นฟู](https://rea.tools/th/showcase/dx-ball/)ทำตามคำแนะนำพื้นเมืองไปยังฟังก์ชัน Cตรวจสอบ

[วิเคราะห์แอปของคุณเอง](https://rea.tools/get-started/)
