คำอธิบาย
ใช้ chrome.documentScan
API เพื่อค้นหาและเรียกรูปภาพจากเครื่องสแกนเอกสารที่แนบมา
Document Scan API ได้รับการออกแบบมาเพื่อช่วยให้แอปและส่วนขยายสามารถดูเนื้อหาของเอกสารกระดาษในเครื่องสแกนเอกสารที่แนบมา
สิทธิ์
documentScan
ความพร้อมใช้งาน
แนวคิดและการใช้งาน
API นี้รองรับการสแกนเอกสาร 2 วิธี หากกรณีการใช้งานของคุณใช้งานกับเครื่องสแกนใดก็ได้และไม่จำเป็นต้องมีการควบคุมการกำหนดค่า ให้ใช้เมธอด scan()
กรณีการใช้งานที่ซับซ้อนมากขึ้นต้องใช้วิธีต่างๆ ร่วมกัน ซึ่งใช้ได้เฉพาะใน Chrome 124 ขึ้นไป
สแกนแบบง่าย
สำหรับกรณีการใช้งานทั่วไป ซึ่งหมายถึงกรณีที่สามารถทำงานกับเครื่องสแกนใดก็ได้และไม่ต้องมีการควบคุมการกำหนดค่า ให้เรียกใช้ scan()
เมธอดนี้จะรับออบเจ็กต์ ScanOptions
และแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ScanResults
ความสามารถของตัวเลือกนี้จะจำกัดอยู่ที่จำนวนการสแกนและประเภท MIME ที่ผู้โทรจะยอมรับ การสแกนจะแสดงผลเป็น URL
สำหรับแสดงในแท็ก <img>
สำหรับอินเทอร์เฟซผู้ใช้
การสแกนที่ซับซ้อน
การสแกนที่ซับซ้อนสามารถทำได้ใน 3 ระยะตามที่อธิบายไว้ในส่วนนี้ โครงร่างนี้ไม่ได้อธิบายอาร์กิวเมนต์ของเมธอดทั้งหมดหรือพร็อพเพอร์ตี้ทุกรายการที่ตอบกลับมาในคำตอบ แต่มีวัตถุประสงค์เพื่อให้คำแนะนำทั่วไปในการเขียนโค้ด จากเครื่องสแกนเท่านั้น
Discovery
โทร
getScannerList()
เครื่องสแกนที่พร้อมใช้งานจะส่งคืนในคำสัญญาที่แปลด้วยGetScannerListResponse
- ออบเจ็กต์การตอบกลับมีอาร์เรย์ของออบเจ็กต์
ScannerInfo
- อาร์เรย์อาจมีข้อมูลหลายรายการสำหรับเครื่องสแกนเครื่องเดียว หากเครื่องสแกนดังกล่าวรองรับโปรโตคอลหรือวิธีการเชื่อมต่อหลายแบบ
- ออบเจ็กต์การตอบกลับมีอาร์เรย์ของออบเจ็กต์
เลือกเครื่องสแกนจากอาร์เรย์ที่แสดงผลและบันทึกค่าของพร็อพเพอร์ตี้
scannerId
ใช้คุณสมบัติของออบเจ็กต์
ScannerInfo
แต่ละรายการเพื่อแยกระหว่างออบเจ็กต์ต่างๆ สำหรับเครื่องสแกนเดียวกัน ออบเจ็กต์จากเครื่องสแกนเดียวกันจะมีค่าสำหรับพร็อพเพอร์ตี้deviceUuid
เหมือนกันScannerInfo
ยังมีพร็อพเพอร์ตี้imageFormats
ที่มีอาร์เรย์ของประเภทรูปภาพที่รองรับ
การกำหนดค่าเครื่องตรวจการเข้าถึง
โทร
openScanner()
โดยส่งผ่านรหัสเครื่องสแกนที่บันทึกไว้ และส่งคืนคำสัญญาที่แปลด้วยOpenScannerResponse
ออบเจ็กต์การตอบกลับประกอบด้วยพร็อพเพอร์ตี้
scannerHandle
ซึ่งคุณจะต้องบันทึกพร็อพเพอร์ตี้ตัวเลือกที่มีพร็อพเพอร์ตี้เฉพาะเครื่องมือสแกนซึ่งคุณจะต้องตั้งค่า ดูข้อมูลเพิ่มเติมในเรียกข้อมูลตัวเลือกเครื่องสแกน
(ไม่บังคับ) หากต้องการให้ผู้ใช้ระบุค่าสำหรับตัวเลือกเครื่องมือสแกน ให้สร้างอินเทอร์เฟซผู้ใช้ คุณจะต้องใช้ตัวเลือกเครื่องมือสแกนที่มีโดยขั้นตอนก่อนหน้านี้ และจะต้องเรียกข้อมูลกลุ่มตัวเลือกที่ได้รับจากเครื่องสแกน ดูข้อมูลเพิ่มเติมที่สร้างอินเทอร์เฟซผู้ใช้
สร้างอาร์เรย์ของออบเจ็กต์
OptionSetting
โดยใช้ค่าแบบเป็นโปรแกรมหรือค่าที่ได้จากผู้ใช้ ดูข้อมูลเพิ่มเติมที่ "ตั้งค่าตัวเลือกเครื่องสแกน"ส่งต่ออาร์เรย์ของออบเจ็กต์
OptionSetting
รายการไปยังsetOptions()
เพื่อตั้งค่าตัวเลือกสำหรับเครื่องสแกน และจะแสดงคำมั่นสัญญาที่จบลงด้วยSetOptionsResponse
ออบเจ็กต์นี้มีเวอร์ชันอัปเดตของตัวเลือกเครื่องสแกนที่ดึงมาในขั้นตอนที่ 1 ของการกำหนดค่าเครื่องสแกนเนื่องจากการเปลี่ยนตัวเลือกหนึ่งอาจเปลี่ยนแปลงข้อจำกัดให้กับอีกตัวเลือกหนึ่งได้ คุณจึงอาจต้องทำขั้นตอนเหล่านี้ซ้ำหลายๆ ครั้ง
กำลังสแกน
สร้างออบเจ็กต์
StartScanOptions
แล้วส่งไปยังstartScan()
และส่งคืนคำสัญญาที่ยืนยันด้วยStartScanResponse
พร็อพเพอร์ตี้job
เป็นแฮนเดิลที่คุณจะใช้ในการอ่านข้อมูลการสแกนหรือยกเลิกการสแกนส่งแฮนเดิลงานไปยัง
readScanData()
และจะแสดงคำสัญญาที่แปลงด้วยออบเจ็กต์ReadScanDataResponse
หากอ่านข้อมูลสำเร็จ พร็อพเพอร์ตี้result
เท่ากับSUCCESS
และพร็อพเพอร์ตี้data
จะมีArrayBuffer
ที่มีการสแกนบางส่วน โปรดทราบว่าestimatedCompletion
คิดเป็นเปอร์เซ็นต์โดยประมาณจากข้อมูลทั้งหมดที่มีการนำส่งจนถึงตอนนี้ทำซ้ำขั้นตอนก่อนหน้าจนกว่าพร็อพเพอร์ตี้
result
จะเท่ากับEOF
หรือเกิดข้อผิดพลาด
เมื่อสแกนเสร็จแล้ว ให้เรียกใช้ closeScanner()
ด้วยแฮนเดิลเครื่องสแกนที่บันทึกไว้ในขั้นตอนที่ 3 และส่งคืนคำสัญญาที่แปลค่าด้วย CloseScannerResponse
ระบบจะหยุดการสแกน cancelScan()
หลังจากสร้างงานได้ทุกเมื่อ
ออบเจ็กต์การตอบกลับ
เมธอดทั้งหมดจะแสดง Promise ที่แปลค่าด้วยออบเจ็กต์การตอบกลับบางอย่าง
แท็กเหล่านี้ส่วนใหญ่มีพร็อพเพอร์ตี้ result
ที่มีค่าเป็นสมาชิกของ OperationResult
พร็อพเพอร์ตี้บางอย่างของออบเจ็กต์การตอบกลับจะไม่มีค่า เว้นแต่ค่าของ result
จะมีค่าเฉพาะ ความสัมพันธ์เหล่านี้จะอธิบายไว้ในการอ้างอิงสำหรับออบเจ็กต์คำตอบแต่ละรายการ
เช่น OpenScannerResponse.scannerHandle
จะมีค่าก็ต่อเมื่อ OpenScannerResponse.result
เท่ากับ SUCCESS
ตัวเลือกเครื่องสแกน
ตัวเลือกเครื่องตรวจการเข้าถึงจะแตกต่างกันไปตามอุปกรณ์ จึงทำให้ไม่สามารถแสดงตัวเลือกเครื่องสแกนภายใน documentScan API ได้โดยตรง ในการแก้ไขปัญหานี้ OpenScannerResponse
(ดึงข้อมูลโดยใช้
openScanner()
) และ SetOptionsResponse
(ออบเจ็กต์คำตอบสำหรับ
setOptions()
) มีพร็อพเพอร์ตี้ options
ซึ่งเป็นออบเจ็กต์ที่มีตัวเลือกสำหรับเครื่องสแกนโดยเฉพาะ แต่ละตัวเลือกคือการแมปคีย์-ค่าโดยที่คีย์เป็นตัวเลือกเฉพาะอุปกรณ์และค่าเป็นอินสแตนซ์ของ ScannerOption
โครงสร้างโดยทั่วไปจะมีลักษณะดังนี้
{
"key1": { scannerOptionInstance }
"key2": { scannerOptionInstance }
}
เช่น สมมติว่าเครื่องสแกนที่แสดงตัวเลือกที่ชื่อว่า "source" และ "Resolution" โครงสร้างของออบเจ็กต์ options
ที่แสดงผลจะมีลักษณะคล้ายตัวอย่างต่อไปนี้ เพื่อความเรียบง่าย ระบบจะแสดงคำตอบ ScannerOption
เพียงบางส่วนเท่านั้น
{
"source": {
"name": "source",
"type": OptionType.STRING,
...
},
"resolution": {
"name": "resolution",
"type": OptionType.INT,
...
},
...
}
สร้างอินเทอร์เฟซผู้ใช้
แม้ว่าจะไม่จำเป็นต้องใช้ API นี้ แต่คุณอาจต้องการให้ผู้ใช้เลือกค่าสำหรับตัวเลือกที่เฉพาะเจาะจง ต้องใช้อินเทอร์เฟซผู้ใช้ ใช้ OpenScannerResponse
(เปิดโดย openScanner()
) เพื่อเรียกดูตัวเลือกสำหรับเครื่องมือสแกนที่แนบมาตามที่อธิบายไว้ในส่วนก่อนหน้านี้
โปรแกรมสแกนบางรายการจะจัดกลุ่มตัวเลือกในลักษณะเฉพาะอุปกรณ์ ทั้งนี้จะไม่ส่งผลต่อลักษณะการทำงานของตัวเลือก แต่เนื่องจากอาจมีการกล่าวถึงกลุ่มเหล่านี้ในเอกสารประกอบผลิตภัณฑ์ของเครื่องสแกน กลุ่มดังกล่าวจึงควรแสดงต่อผู้ใช้ คุณเรียกข้อมูลกลุ่มเหล่านี้ได้โดยการเรียกใช้ getOptionGroups()
ซึ่งจะแสดงคำสัญญาที่แปลงด้วยออบเจ็กต์ GetOptionGroupsResponse
พร็อพเพอร์ตี้ groups
มีอาร์เรย์ของกลุ่มเฉพาะเครื่องสแกน ใช้ข้อมูลในกลุ่มเหล่านี้เพื่อจัดระเบียบตัวเลือกใน OpenScannerResponse
สำหรับแสดงผล
{
scannerHandle: "123456",
result: SUCCESS,
groups: [
{
title: "Standard",
members: [ "resolution", "mode", "source" ]
}
]
}
ตามที่ระบุไว้ในการกําหนดค่าเครื่องตรวจ การเปลี่ยนตัวเลือกหนึ่งอาจเปลี่ยนแปลงข้อจํากัดของอีกตัวเลือกหนึ่งได้ ซึ่งเป็นเหตุผลที่
setOptionsResponse
(ออบเจ็กต์การตอบกลับสำหรับ
setOptions()
) มีพร็อพเพอร์ตี้ options
อีกรายการ ใช้ตัวเลือกนี้เพื่ออัปเดตอินเทอร์เฟซผู้ใช้ แล้วทำซ้ำตามต้องการจนกระทั่ง
ตัวเลือกทั้งหมดได้รับการตั้งค่า
ตั้งค่าตัวเลือกเครื่องสแกน
ตั้งค่าตัวเลือกเครื่องสแกนโดยการส่งอาร์เรย์ของออบเจ็กต์ OptionSetting
ไปยัง setOptions()
ดูตัวอย่างได้ที่ส่วนสแกนหน้าที่มีขนาดตัวอักษร 1 หน้า
ตัวอย่าง
ดึงข้อมูลหน้าเป็น Blob
ตัวอย่างนี้แสดงวิธีหนึ่งในการเรียกหน้าจากเครื่องสแกนเป็น Blob และแสดงการใช้ startScan()
และ readScanData()
โดยใช้ค่า OperationResult
async function pageAsBlob(handle) {
let response = await chrome.documentScan.startScan(
handle, {format: "image/jpeg"});
if (response.result != chrome.documentScan.OperationResult.SUCCESS) {
return null;
}
const job = response.job;
let imgParts = [];
response = await chrome.documentScan.readScanData(job);
while (response.result == chrome.documentScan.OperationResult.SUCCESS) {
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
} else {
// Delay so hardware can make progress.
await new Promise(r => setTimeout(r, 100));
}
response = await chrome.documentScan.readScanData(job);
}
if (response.result != chrome.documentScan.OperationResult.EOF) {
return null;
}
if (response.data && response.data.byteLength > 0) {
imgParts.push(response.data);
}
return new Blob(imgParts, { type: "image/jpeg" });
}
สแกนหน้าที่มีขนาดตัวอักษร 1 หน้า
ตัวอย่างนี้แสดงวิธีเลือกเครื่องสแกน ตั้งค่าตัวเลือก และเปิดเครื่องสแกน จากนั้นจะดึงเนื้อหาของหน้าเว็บหนึ่งหน้าและปิดเครื่องสแกน กระบวนการนี้จะแสดงให้เห็นการใช้ getScannerList()
, openScanner()
, setOptions()
และ closeScanner()
โปรดทราบว่าระบบจะดึงข้อมูลเนื้อหาของหน้าเว็บโดยการเรียกใช้ฟังก์ชัน pageAsBlob()
จากตัวอย่างก่อนหน้านี้
async function scan() {
let response = await chrome.documentScan.getScannerList({ secure: true });
let scanner = await chrome.documentScan.openScanner(
response.scanners[0].scannerId);
const handle = scanner.scannerHandle;
let options = [];
for (source of scanner.options["source"].constraint.list) {
if (source.includes("ADF")) {
options.push({
name: "source",
type: chrome.documentScan.OptionType.STRING,
value: { value: source }
});
break;
}
}
options.push({
name: "tl-x",
type: chrome.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-x",
type: chrome.documentScan.OptionType.FIXED,
value: 215.9 // 8.5" in mm
});
options.push({
name: "tl-y",
type: chrome.documentScan.OptionType.FIXED,
value: 0.0
});
options.push({
name: "br-y",
type: chrome.documentScan.OptionType.FIXED,
value: 279.4 // 11" in mm
});
response = await chrome.documentScan.setOptions(handle, options);
let imgBlob = await pageAsBlob(handle);
if (imgBlob != null) {
// Insert imgBlob into DOM, save to disk, etc
}
await chrome.documentScan.closeScanner(handle);
}
แสดงการกำหนดค่า
ตามที่ระบุไว้ที่อื่น การแสดงตัวเลือกการกำหนดค่าเครื่องสแกนแก่ผู้ใช้จะต้องเรียกใช้ getOptionGroups()
นอกเหนือจากตัวเลือกเครื่องสแกนที่แสดงผลจากการเรียกไปยัง openScanner()
ทั้งนี้เพื่อให้ตัวเลือกสามารถแสดงแก่ผู้ใช้ในกลุ่มที่ผู้ผลิตกำหนด ตัวอย่างนี้แสดงวิธีดำเนินการ
async function showConfig() {
let response = await chrome.documentScan.getScannerList({ secure: true });
let scanner = await chrome.documentScan.openScanner(
response.scanners[0].scannerId);
let groups = await chrome.documentScan.getOptionGroups(scanner.scannerHandle);
for (const group of groups.groups) {
console.log("=== " + group.title + " ===");
for (const member of group.members) {
const option = scanner.options[member];
if (option.isActive) {
console.log(" " + option.name + " = " + option.value);
} else {
console.log(" " + option.name + " is inactive");
}
}
}
}
ประเภท
CancelScanResponse
พร็อพเพอร์ตี้
-
งาน
string
ระบุแฮนเดิลงานเดียวกันกับที่ส่งไปยัง
cancelScan()
-
ผลลัพธ์
ผลการสแกนการยกเลิกของแบ็กเอนด์ หากผลลัพธ์คือ
OperationResult.SUCCESS
หรือOperationResult.CANCELLED
แสดงว่าการสแกนถูกยกเลิกและเครื่องสแกนพร้อมที่จะเริ่มการสแกนใหม่แล้ว หากผลที่ได้คือOperationResult.DEVICE_BUSY
เครื่องสแกนยังอยู่ระหว่างดำเนินการยกเลิกที่ขอ ผู้โทรควรรอสักครู่แล้วลองส่งคำขออีกครั้ง ค่าผลลัพธ์อื่นๆ บ่งชี้ถึงข้อผิดพลาดถาวรที่ไม่ควรลองอีกครั้ง
CloseScannerResponse
พร็อพเพอร์ตี้
-
ผลลัพธ์
ผลของการปิดเครื่องสแกน แม้ว่าค่านี้ไม่ใช่
SUCCESS
แต่แฮนเดิลก็จะไม่ถูกต้องและไม่ควรใช้กับการดำเนินการเพิ่มเติม -
scannerHandle
string
แฮนเดิลสแกนเนอร์เดียวกันกับที่ส่งไปยัง
closeScanner
Configurability
วิธีเปลี่ยนตัวเลือก
ค่าแจกแจง
"NOT_CONFIGURABLE"
ตัวเลือกเป็นแบบอ่านอย่างเดียว
"SOFTWARE_CONFIGURABLE"
ตัวเลือกนี้ตั้งค่าได้ในซอฟต์แวร์
"HARDWARE_CONFIGURABLE"
ผู้ใช้จะตั้งค่าตัวเลือกได้จากการสลับหรือกดปุ่มบนเครื่องสแกน
ConnectionType
ระบุวิธีที่เครื่องสแกนเชื่อมต่อกับคอมพิวเตอร์
ค่าแจกแจง
"USB"
ค่าแจกแจง
"INT_RANGE"
ข้อจำกัดในช่วงของค่า OptionType.INT
ค่า พร็อพเพอร์ตี้ min
, max
และ quant
ของ OptionConstraint
จะเป็น long
และจะยกเลิกการตั้งค่าพร็อพเพอร์ตี้ list
"FIXED_RANGE"
ข้อจำกัดในช่วงของค่า OptionType.FIXED
พร็อพเพอร์ตี้ min
, max
และ quant
ของ OptionConstraint
จะเป็น double
และจะยกเลิกการตั้งค่าพร็อพเพอร์ตี้ list
"INT_LIST"
ข้อจำกัดในรายการค่าที่เฉพาะเจาะจงของ OptionType.INT
ค่า พร็อพเพอร์ตี้ OptionConstraint.list
จะมีค่า long
และระบบจะเลิกตั้งค่าพร็อพเพอร์ตี้อื่นๆ
"FIXED_LIST"
ข้อจำกัดในรายการค่าที่เฉพาะเจาะจงของ OptionType.FIXED
พร็อพเพอร์ตี้ OptionConstraint.list
จะมีค่า double
และระบบจะเลิกตั้งค่าพร็อพเพอร์ตี้อื่นๆ
"STRING_LIST"
ข้อจำกัดในรายการค่าที่เฉพาะเจาะจงของ OptionType.STRING
ค่า พร็อพเพอร์ตี้ OptionConstraint.list
จะมีค่า DOMString
และระบบจะเลิกตั้งค่าพร็อพเพอร์ตี้อื่นๆ
DeviceFilter
พร็อพเพอร์ตี้
-
local
บูลีน ไม่บังคับ
ส่งคืนเฉพาะเครื่องสแกนที่ต่อเข้ากับคอมพิวเตอร์โดยตรงเท่านั้น
-
รักษาความปลอดภัย
บูลีน ไม่บังคับ
ส่งคืนเฉพาะเครื่องสแกนที่ใช้การส่งที่มีความปลอดภัย เช่น USB หรือ TLS
GetOptionGroupsResponse
พร็อพเพอร์ตี้
-
กลุ่ม
OptionGroup[] ไม่บังคับ
หาก
result
คือSUCCESS
จะแสดงรายการกลุ่มตัวเลือกตามลำดับที่ไดรเวอร์เครื่องสแกนระบุไว้ -
ผลลัพธ์
ผลลัพธ์ของการได้รับกลุ่มตัวเลือก หากค่าของพารามิเตอร์นี้คือ
SUCCESS
ระบบจะป้อนข้อมูลพร็อพเพอร์ตี้groups
-
scannerHandle
string
แฮนเดิลสแกนเนอร์เดียวกันกับที่ส่งไปยัง
getOptionGroups
GetScannerListResponse
พร็อพเพอร์ตี้
-
ผลลัพธ์
ผลการแจงนับ โปรดทราบว่าระบบอาจแสดงผลลัพธ์บางส่วนแม้ว่าจะระบุข้อผิดพลาดก็ตาม
-
สแกนเนอร์
รายการโปรแกรมสแกนที่อาจว่างเปล่าซึ่งตรงกับ
DeviceFilter
ที่ระบุ
OpenScannerResponse
พร็อพเพอร์ตี้
-
ตัวเลือก
ออบเจ็กต์ ไม่บังคับ
หาก
result
คือSUCCESS
ให้แมปคีย์-ค่าโดยที่คีย์เป็นตัวเลือกเฉพาะอุปกรณ์และค่าเป็นอินสแตนซ์ของScannerOption
-
ผลลัพธ์
ผลของการเปิดเครื่องสแกน หากค่าของพารามิเตอร์นี้คือ
SUCCESS
ระบบจะป้อนข้อมูลพร็อพเพอร์ตี้scannerHandle
และoptions
-
scannerHandle
string ไม่บังคับ
หาก
result
คือSUCCESS
ให้แฮนเดิลไปยังเครื่องสแกนที่สามารถใช้ดำเนินการเพิ่มเติมได้ -
scannerId
string
รหัสเครื่องสแกนที่ส่งไปยัง
openScanner()
OperationResult
enum ที่ระบุผลลัพธ์ของการดำเนินการแต่ละรายการ
ค่าแจกแจง
"UNKNOWN"
เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุหรือไม่ทราบสาเหตุ
"สำเร็จ"
การดำเนินการสำเร็จ
"ไม่รองรับ"
ระบบไม่รองรับการดำเนินการนี้
"CANCELLED"
การดำเนินการถูกยกเลิก
"DEVICE_BUSY"
อุปกรณ์ไม่ว่าง
"ไม่ถูกต้อง"
ข้อมูลหรืออาร์กิวเมนต์ที่ส่งผ่านไปยังเมธอดไม่ถูกต้อง
"WRong_TYPE"
ค่าที่ระบุเป็นประเภทข้อมูลที่ไม่ถูกต้องสำหรับตัวเลือกที่สำคัญ
"EOF"
ไม่มีข้อมูลเพิ่มเติมแล้ว
"ADF_JAMMED"
ตัวป้อนเอกสารติดอยู่
"ADF_EMPTY"
ตัวป้อนเอกสารว่างเปล่า
"COVER_OPEN"
ฝาครอบเปิดอยู่
"IO_ERROR"
เกิดข้อผิดพลาดขณะสื่อสารกับอุปกรณ์
"ACCESS_DENIED"
อุปกรณ์ต้องมีการตรวจสอบสิทธิ์
"NO_MEMORY"
Chromebook มีหน่วยความจำไม่เพียงพอที่จะดำเนินการให้เสร็จสิ้น
"UNREACHABLE"
อุปกรณ์เข้าถึงไม่ได้
"ไม่พบ"
อุปกรณ์ไม่ได้เชื่อมต่ออยู่
"INTERNAL_ERROR"
เกิดข้อผิดพลาดที่อื่นที่ไม่ใช่แอปพลิเคชันการโทร
OptionConstraint
พร็อพเพอร์ตี้
-
ลิสต์
string[] | number[] ไม่บังคับ
-
สูงสุด
ตัวเลข ไม่บังคับ
-
นาที
ตัวเลข ไม่บังคับ
-
ปริมาณ
ตัวเลข ไม่บังคับ
-
ประเภท
OptionGroup
พร็อพเพอร์ตี้
-
สมาชิก
สตริง[]
อาร์เรย์ของชื่อตัวเลือกตามลำดับที่ได้จากผู้ขับ
-
title
string
ระบุชื่อที่พิมพ์ได้ เช่น "ตัวเลือกเรขาคณิต"
OptionSetting
พร็อพเพอร์ตี้
-
ชื่อ
string
ระบุชื่อของตัวเลือกในการตั้งค่า
-
ประเภท
ระบุประเภทข้อมูลของตัวเลือก ประเภทข้อมูลที่ขอต้องตรงกับประเภทข้อมูลจริงของตัวเลือกที่สำคัญ
-
value
สตริง | ตัวเลข | บูลีน | ตัวเลข[] ไม่บังคับ
ระบุค่าที่จะตั้งค่า ไม่ต้องตั้งค่าเพื่อขอการตั้งค่าอัตโนมัติสำหรับตัวเลือกที่เปิดใช้
autoSettable
ประเภทข้อมูลที่ระบุสำหรับvalue
ต้องตรงกับtype
OptionType
ประเภทข้อมูลของตัวเลือก
ค่าแจกแจง
"UNKNOWN"
ไม่ทราบประเภทข้อมูลของตัวเลือก ระบบจะยกเลิกการตั้งค่าพร็อพเพอร์ตี้ value
"BOOL"
พร็อพเพอร์ตี้ value
จะเป็นหนึ่งใน true
false
"INT"
จำนวนเต็ม 32 บิตแบบมีเครื่องหมาย พร็อพเพอร์ตี้ value
จะยาวหรือยาว[] ขึ้นอยู่กับว่าตัวเลือกนั้นใช้ค่ามากกว่า 1 ค่าหรือไม่
"FIXED"
A ดับเบิลในช่วง -32768-32767.9999 ด้วยความละเอียด 1/65535 พร็อพเพอร์ตี้ value
จะเป็นแบบ Double หรือ Double[] ขึ้นอยู่กับว่าตัวเลือกนั้นใช้ค่ามากกว่า 1 ค่าหรือไม่ ค่าคู่ที่ไม่สามารถนำเสนอได้ตรงกันทั้งหมดจะได้รับการปัดเศษเป็นช่วงและความแม่นยําที่ใช้ได้
"STRING"
ลำดับไบต์ทั้งหมดยกเว้น NUL ("\0") พร็อพเพอร์ตี้ value
จะเป็น DOMString
"button"
ตัวเลือกประเภทนี้ไม่มีค่า แต่การตั้งค่าตัวเลือกประเภทนี้จะทำให้เกิดผลข้างเคียงของตัวเลือกที่ต้องการในไดรเวอร์เครื่องสแกนแทน เช่น ไดรเวอร์เครื่องสแกนอาจใช้ตัวเลือกที่พิมพ์ด้วยปุ่มเพื่อระบุวิธีการเลือกค่าเริ่มต้น หรือบอกตัวป้อนเอกสารอัตโนมัติให้เลื่อนไปยังกระดาษถัดไป
"GROUP"
ตัวเลือกการจัดกลุ่ม ไม่มีค่า ค่านี้รวมไว้เพื่อความเข้ากันได้ แต่ปกติแล้วจะไม่แสดงผลในค่า ScannerOption
ใช้ getOptionGroups()
เพื่อเรียกข้อมูลรายการกลุ่มที่มีตัวเลือกสมาชิก
ค่าแจกแจง
"UNITLESS"
ค่าคือตัวเลขไร้หน่วย เช่น อาจเป็นเกณฑ์
"PIXEL"
ค่าคือจํานวนพิกเซล เช่น ขนาดการสแกน
"BIT"
ค่าคือจํานวนบิต เช่น ความลึกของสี
"MM"
เช่น ค่านี้จะวัดเป็นมิลลิเมตร เช่น ขนาดการสแกน
"DPI"
ค่าจะวัดเป็นจุดต่อนิ้ว เช่น ความละเอียด
"PERCENT"
ค่าจะเป็นเปอร์เซ็นต์ เช่น ความสว่าง
"MICROSECOND"
ค่าจะวัดเป็นไมโครวินาที เช่น เวลาเปิดรับแสง
ReadScanDataResponse
พร็อพเพอร์ตี้
-
ข้อมูล
ArrayBuffer ไม่บังคับ
หาก
result
คือSUCCESS
จะมีข้อมูลรูปภาพที่สแกนส่วนถัดไป หากresult
คือEOF
จะมีข้อมูลรูปภาพที่สแกนกลุ่มสุดท้าย -
estimatedCompletion
ตัวเลข ไม่บังคับ
หาก
result
คือSUCCESS
จำนวนโดยประมาณของข้อมูลการสแกนทั้งหมดที่ส่งจนถึงขณะนี้อยู่ในช่วง 0 ถึง 100 -
งาน
string
ระบุแฮนเดิลงานที่ส่งไปยัง
readScanData()
-
ผลลัพธ์
ผลลัพธ์ของการอ่านข้อมูล หากค่าคือ
SUCCESS
จะทำให้data
มีข้อมูลรูปภาพที่พร้อมสำหรับการอ่านในส่วนถัดไป (ความยาวเป็น 0) หากค่าคือEOF
ค่าdata
จะมีกลุ่มข้อมูลรูปภาพสุดท้าย
ScannerInfo
พร็อพเพอร์ตี้
-
connectionType
ระบุวิธีที่เครื่องสแกนเชื่อมต่อกับคอมพิวเตอร์
-
deviceUuid
string
สำหรับการจับคู่กับรายการอื่นๆ
ScannerInfo
ที่ชี้ไปยังอุปกรณ์จริงเดียวกัน -
imageFormats
สตริง[]
อาร์เรย์ของประเภท MIME ที่สามารถขอให้สแกนที่แสดงผลได้
-
ผู้ผลิต
string
ผู้ผลิตเครื่องสแกน
-
model
string
รุ่นเครื่องสแกน (หากมี) หรือคำอธิบายทั่วไป
-
ชื่อ
string
ชื่อเครื่องสแกนที่มนุษย์อ่านได้เพื่อแสดงใน UI
-
protocolType
string
คำอธิบายโปรโตคอลหรือไดรเวอร์ที่มนุษย์อ่านได้ที่ใช้เข้าถึงเครื่องสแกน เช่น Mopria, WSD หรือ Epsond วิธีนี้จะมีประโยชน์ในการให้ผู้ใช้เลือกระหว่างโปรโตคอลต่างๆ หากอุปกรณ์รองรับหลายโปรโตคอล
-
scannerId
string
รหัสของเครื่องสแกนที่เจาะจง
-
รักษาความปลอดภัย
boolean
หากเป็น "จริง" การรับส่งของการเชื่อมต่อเครื่องสแกนจะไม่สามารถสกัดกั้นโดย Listener แบบแพสซีฟ เช่น TLS หรือ USB
ScannerOption
พร็อพเพอร์ตี้
-
ความสามารถในการกำหนดค่า
ระบุว่าจะเปลี่ยนแปลงตัวเลือกได้หรือไม่และอย่างไร
-
ข้อจำกัด
OptionConstraint ไม่บังคับ
กำหนด
OptionConstraint
ในตัวเลือกเครื่องสแกนปัจจุบัน -
คำอธิบาย
string
คำอธิบายที่ยาวขึ้นของตัวเลือก
-
isActive
boolean
ระบุว่าตัวเลือกมีการใช้งานอยู่และสามารถตั้งค่าหรือเรียกข้อมูลได้ หากเป็น "เท็จ" ระบบจะไม่ตั้งค่าพร็อพเพอร์ตี้
value
-
isAdvanced
boolean
ระบุว่า UI ไม่ควรแสดงตัวเลือกนี้โดยค่าเริ่มต้น
-
isAutoSettable
boolean
ตั้งค่าอัตโนมัติได้โดยไดรเวอร์เครื่องสแกน
-
isDetectable
boolean
ระบุว่าสามารถตรวจพบตัวเลือกนี้จากซอฟต์แวร์
-
isEmulated
boolean
จำลองโดยไดรเวอร์เครื่องสแกนหากเป็น "จริง"
-
ชื่อ
string
ชื่อตัวเลือกที่ใช้ตัวอักษร ASCII ตัวพิมพ์เล็ก ตัวเลข และขีดกลาง ไม่อนุญาตให้ใช้เครื่องหมายกำกับการออกเสียง
-
title
string
ชื่อบรรทัดเดียวสำหรับพิมพ์
-
ประเภท
ประเภทข้อมูลที่อยู่ในพร็อพเพอร์ตี้
value
ซึ่งจำเป็นสำหรับการตั้งค่าตัวเลือกนี้ -
หน่วย
หน่วยวัดสำหรับตัวเลือกนี้
-
value
สตริง | ตัวเลข | บูลีน | ตัวเลข[] ไม่บังคับ
ค่าปัจจุบันของตัวเลือก หากเกี่ยวข้อง โปรดทราบว่าประเภทข้อมูลของพร็อพเพอร์ตี้นี้ต้องตรงกับประเภทข้อมูลที่ระบุใน
type
ScanOptions
พร็อพเพอร์ตี้
-
maxImages
ตัวเลข ไม่บังคับ
จํานวนรูปภาพที่สแกนที่อนุญาต ค่าเริ่มต้นคือ 1
-
mimeTypes
string[] ไม่บังคับ
ประเภท MIME ที่ผู้โทรยอมรับ
ScanResults
พร็อพเพอร์ตี้
-
dataUrls
สตริง[]
อาร์เรย์ของ URL รูปภาพข้อมูลในรูปแบบที่ส่งเป็นค่า "src" ไปยังแท็กรูปภาพได้
-
mimeType
string
ประเภท MIME ของ
dataUrls
SetOptionResult
พร็อพเพอร์ตี้
-
ชื่อ
string
ระบุชื่อของตัวเลือกที่ตั้งค่าไว้
-
ผลลัพธ์
ระบุผลลัพธ์ของการตั้งค่าตัวเลือก
SetOptionsResponse
พร็อพเพอร์ตี้
-
ตัวเลือก
ออบเจ็กต์ ไม่บังคับ
อัปเดตการแมปคีย์-ค่าจากชื่อตัวเลือกเป็นค่า
ScannerOption
ที่มีการกำหนดค่าใหม่หลังจากพยายามตั้งค่าตัวเลือกที่ระบุทั้งหมดแล้ว ซึ่งมีโครงสร้างเหมือนกับพร็อพเพอร์ตี้options
ในOpenScannerResponse
ระบบจะตั้งค่าพร็อพเพอร์ตี้นี้แม้ว่าจะตั้งค่าตัวเลือกบางรายการไม่สำเร็จ แต่จะไม่ได้ตั้งค่าหากเรียกข้อมูลการกำหนดค่าที่อัปเดตไม่สำเร็จ (เช่น หากมีการยกเลิกการเชื่อมต่อเครื่องสแกนระหว่างการสแกน)
-
ผลการแข่งขัน
อาร์เรย์ผลลัพธ์ แต่ละรายการสำหรับทุกๆ
OptionSetting
ส่งผ่าน -
scannerHandle
string
ระบุแฮนเดิลเครื่องมือสแกนที่ส่งไปยัง
setOptions()
StartScanOptions
พร็อพเพอร์ตี้
-
รูปแบบ
string
ระบุประเภท MIME ที่จะส่งคืนข้อมูลที่สแกน
-
maxReadSize
ตัวเลข ไม่บังคับ
หากระบุค่าที่ไม่ใช่ 0 ให้จำกัดไบต์ที่สแกนสูงสุดที่แสดงผลในการตอบกลับ
readScanData
รายการเดียวสำหรับค่าดังกล่าว ค่าที่น้อยที่สุดที่อนุญาตคือ 32768 (32 KB) หากไม่ได้ระบุคุณสมบัตินี้ ขนาดของชิ้นส่วนที่ส่งกลับมาอาจใหญ่เท่ากับรูปภาพที่สแกนทั้งภาพ
StartScanResponse
พร็อพเพอร์ตี้
-
งาน
string ไม่บังคับ
หาก
result
คือSUCCESS
ให้มอบแฮนเดิลที่ใช้อ่านข้อมูลการสแกนหรือยกเลิกงานได้ -
ผลลัพธ์
ผลของการเริ่มการสแกน หากค่าของพารามิเตอร์นี้คือ
SUCCESS
ระบบจะป้อนข้อมูลพร็อพเพอร์ตี้job
-
scannerHandle
string
ให้แฮนเดิลสแกนเนอร์แบบเดียวกับที่ส่งไปยัง
startScan()
วิธีการ
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
ยกเลิกการสแกนที่เริ่มแล้วและส่งคืน Promise ที่แก้ไขด้วยออบเจ็กต์ CancelScanResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังออบเจ็กต์ดังกล่าวแทน
พารามิเตอร์
-
งาน
string
แฮนเดิลของงานการสแกนที่ใช้งานอยู่ซึ่งก่อนหน้านี้ได้มาจากการเรียกใช้ไปยัง
startScan
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: CancelScanResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<CancelScanResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
ปิดเครื่องสแกนที่มีแฮนเดิลที่ส่งผ่านและส่งคืน Promise ที่แก้ไขด้วยออบเจ็กต์ CloseScannerResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังออบเจ็กต์ดังกล่าวแทน แม้ว่าการตอบกลับจะไม่ประสบผลสำเร็จ แต่แฮนเดิลที่ระบุจะใช้งานไม่ได้และไม่ควรใช้แฮนเดิลดังกล่าวเพื่อดำเนินการต่อไป
พารามิเตอร์
-
scannerHandle
string
ระบุแฮนเดิลของเครื่องสแกนที่เปิดอยู่ซึ่งเคยส่งคืนจากการเรียกใช้ไปยัง
openScanner
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: CloseScannerResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<CloseScannerResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
เรียกดูชื่อกลุ่มและตัวเลือกสมาชิกกลุ่มจากเครื่องสแกนที่เปิดไว้ก่อนหน้าโดย openScanner
วิธีนี้จะแสดงผล Promise ที่แปลค่าด้วยออบเจ็กต์ GetOptionGroupsResponse
หากมีการส่งผ่านฟังก์ชันเรียกกลับไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่ส่งคืนไปยังฟังก์ชันนี้แทน
พารามิเตอร์
-
scannerHandle
string
แฮนเดิลของเครื่องมือสแกนที่เปิดอยู่แสดงขึ้นจากการโทรหา
openScanner
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: GetOptionGroupsResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<GetOptionGroupsResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
รับรายการเครื่องสแกนที่ใช้ได้และแสดงผล Promise ที่แปลค่าด้วยออบเจ็กต์ GetScannerListResponse
หากมีการส่งผ่านฟังก์ชันเรียกกลับไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่ส่งคืนไปยังฟังก์ชันนี้แทน
พารามิเตอร์
-
ฟิลเตอร์
DeviceFilter
ที่ระบุว่าควรส่งคืนเครื่องสแกนประเภทใด -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: GetScannerListResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<GetScannerListResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
เปิดสแกนเนอร์สำหรับสิทธิ์เข้าถึงพิเศษและส่งคืน Promise ที่แก้ไขด้วยออบเจ็กต์ OpenScannerResponse
หากมีการส่งผ่านฟังก์ชันเรียกกลับไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่ส่งคืนไปยังฟังก์ชันนี้แทน
พารามิเตอร์
-
scannerId
string
รหัสของเครื่องสแกนที่จะเปิด ค่านี้คือค่าที่แสดงผลจากการโทรก่อนหน้าไปยัง
getScannerList
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: OpenScannerResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<OpenScannerResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
อ่านข้อมูลรูปภาพส่วนถัดไปที่มีจากแฮนเดิลงานที่ใช้งานอยู่ แล้วแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ReadScanDataResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังออบเจ็กต์ดังกล่าวแทน
**หมายเหตุ":"ผลลัพธ์การตอบกลับเป็น SUCCESS
ที่มีสมาชิก data
ความยาวเป็น 0 ได้ ซึ่งหมายความว่าเครื่องสแกนยังคงทำงานอยู่ แต่ยังไม่มีข้อมูลเพิ่มเติม ผู้โทรควรรอสักครู่แล้วลองอีกครั้ง
เมื่องานสแกนเสร็จสมบูรณ์แล้ว การตอบกลับจะมีค่าผลลัพธ์ของ EOF
การตอบกลับนี้อาจมีสมาชิก data
คนสุดท้ายที่ไม่ใช่ 0
พารามิเตอร์
-
งาน
string
แฮนเดิลงานที่ใช้งานอยู่ก่อนหน้านี้ถูกส่งคืนจาก
startScan
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: ReadScanDataResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<ReadScanDataResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
สแกนเอกสารและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ScanResults
หากมีการส่งผ่านฟังก์ชันเรียกกลับไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่ส่งคืนไปยังฟังก์ชันดังกล่าวแทน
พารามิเตอร์
-
ตัวเลือก
ออบเจ็กต์ที่มีพารามิเตอร์การสแกน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: ScanResults) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<ScanResults>
Chrome 96 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
ตั้งค่าตัวเลือกในเครื่องสแกนที่ระบุและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ SetOptionsResponse
โดยมีผลลัพธ์ของการพยายามตั้งค่าทุกค่าตามลำดับของออบเจ็กต์ OptionSetting
ที่ส่งผ่าน หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังออบเจ็กต์ดังกล่าวแทน
พารามิเตอร์
-
scannerHandle
string
แฮนเดิลของเครื่องสแกนสำหรับตั้งค่าตัวเลือก ค่านี้ควรเป็นค่าที่ก่อนหน้านี้ได้รับมาจากการโทรไปยัง
openScanner
-
ตัวเลือก
รายการออบเจ็กต์
OptionSetting
รายการที่จะใช้กับเครื่องสแกน -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: SetOptionsResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<SetOptionsResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
เริ่มสแกนเครื่องสแกนที่ระบุและส่งคืนคำสัญญาที่แปลค่าด้วย StartScanResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังออบเจ็กต์ดังกล่าวแทน หากโทรสำเร็จ การตอบกลับจะมีแฮนเดิลงานที่ใช้ในการโทรครั้งต่อๆ ไปเพื่ออ่านข้อมูลการสแกนหรือยกเลิกการสแกนได้
พารามิเตอร์
-
scannerHandle
string
แฮนเดิลของเครื่องสแกนที่เปิดอยู่ ค่านี้ควรเป็นค่าที่ก่อนหน้านี้ได้รับมาจากการโทรไปยัง
openScanner
-
ตัวเลือก
ออบเจ็กต์
StartScanOptions
ที่ระบุตัวเลือกในการใช้สำหรับการสแกน พร็อพเพอร์ตี้StartScanOptions.format
ต้องตรงกับรายการใดรายการหนึ่งที่แสดงผลในScannerInfo
ของเครื่องมือสแกน -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(response: StartScanResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<StartScanResponse>
Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ