คำอธิบาย
ใช้ chrome.documentScan
API เพื่อค้นหาและเรียกข้อมูลรูปภาพจากเครื่องสแกนเอกสารที่แนบมา
Document Scan API ออกแบบมาเพื่อให้แอปและส่วนขยายดูเนื้อหาของเอกสารที่เป็นกระดาษบนเครื่องสแกนเอกสารที่แนบมา
สิทธิ์
documentScan
ความพร้อมใช้งาน
แนวคิดและการใช้งาน
API นี้รองรับการสแกนเอกสาร 2 วิธี หาก Use Case ของคุณทํางานได้กับสแกนเนอร์ใดก็ได้และไม่จำเป็นต้องควบคุมการกําหนดค่า ให้ใช้วิธีการ scan()
กรณีการใช้งานที่ซับซ้อนมากขึ้นต้องใช้วิธีการหลายอย่างร่วมกัน ซึ่ง Chrome รองรับเฉพาะในเวอร์ชัน 124 ขึ้นไป
การสแกนแบบง่าย
สําหรับ Use Case แบบง่าย ซึ่งหมายถึง Use Case ที่ทํางานร่วมกับสแกนเนอร์ใดก็ได้และไม่จำเป็นต้องควบคุมการกําหนดค่า ให้เรียกใช้ scan()
เมธอดนี้ใช้ออบเจ็กต์ ScanOptions
และแสดงผล Promise ที่แสดงผลด้วยออบเจ็กต์ ScanResults
ความสามารถของตัวเลือกนี้จะจํากัดอยู่ที่จํานวนการสแกนและประเภท MIME ที่ผู้เรียกจะยอมรับ ระบบจะแสดงผลการสแกนเป็น URL เพื่อแสดงในแท็ก <img>
สำหรับอินเทอร์เฟซผู้ใช้
การสแกนแบบซับซ้อน
การสแกนที่ซับซ้อนจะดำเนินการเป็น 3 ระยะตามที่อธิบายไว้ในส่วนนี้ เค้าโครงนี้ไม่ได้อธิบายอาร์กิวเมนต์ของเมธอดหรือพร็อพเพอร์ตี้ทั้งหมดที่แสดงในการตอบกลับ มีไว้เพื่อเป็นคำแนะนำทั่วไปในการเขียนโค้ดสแกนเนอร์เท่านั้น
Discovery
โทรหา
getScannerList()
ระบบจะแสดงผลเครื่องสแกนที่ใช้ได้ในรูปแบบ Promise ที่แสดงผลเป็นGetScannerListResponse
- ออบเจ็กต์การตอบกลับมีอาร์เรย์ออบเจ็กต์
ScannerInfo
- อาร์เรย์อาจมีหลายรายการสำหรับเครื่องสแกนเครื่องเดียวหากเครื่องสแกนนั้นรองรับโปรโตคอลหรือวิธีการเชื่อมต่อหลายรายการ
- ออบเจ็กต์การตอบกลับมีอาร์เรย์ออบเจ็กต์
เลือกเครื่องสแกนจากอาร์เรย์ที่แสดงผลและบันทึกค่าของพร็อพเพอร์ตี้
scannerId
ใช้พร็อพเพอร์ตี้ของวัตถุ
ScannerInfo
แต่ละรายการเพื่อแยกแยะวัตถุหลายรายการสำหรับเครื่องสแกนเดียวกัน ออบเจ็กต์จากสแกนเนอร์เดียวกันจะมีค่าเหมือนกันสำหรับพร็อพเพอร์ตี้deviceUuid
ScannerInfo
ยังมีพร็อพเพอร์ตี้imageFormats
ที่มีอาร์เรย์ของประเภทรูปภาพที่รองรับ
การกำหนดค่าเครื่องสแกน
เรียกใช้
openScanner()
โดยส่งรหัสเครื่องสแกนที่จัดเก็บไว้ โดยจะแสดงผล Promise ที่แสดงผลเป็นOpenScannerResponse
ออบเจ็กต์การตอบกลับประกอบด้วยพร็อพเพอร์ตี้
scannerHandle
ซึ่งคุณจะต้องบันทึกพร็อพเพอร์ตี้ตัวเลือกที่มีพร็อพเพอร์ตี้เฉพาะของสแกนเนอร์ ซึ่งคุณจะต้องตั้งค่า ดูข้อมูลเพิ่มเติมที่ "เรียกข้อมูลตัวเลือกเครื่องสแกน"
(ไม่บังคับ) หากต้องการให้ผู้ใช้ระบุค่าสําหรับตัวเลือกเครื่องสแกน ให้สร้างอินเทอร์เฟซผู้ใช้ คุณจะต้องมีตัวเลือกเครื่องสแกนจากขั้นตอนก่อนหน้า และจะต้องเรียกข้อมูลกลุ่มตัวเลือกจากเครื่องสแกน โปรดดูข้อมูลเพิ่มเติมที่หัวข้อสร้างอินเทอร์เฟซผู้ใช้
สร้างอาร์เรย์ของออบเจ็กต์
OptionSetting
โดยใช้ค่าแบบเป็นโปรแกรมหรือค่าที่ผู้ใช้ระบุ ดูข้อมูลเพิ่มเติมที่หัวข้อตั้งค่าตัวเลือกเครื่องสแกนส่งอาร์เรย์ของออบเจ็กต์
OptionSetting
ไปยังsetOptions()
เพื่อตั้งค่าตัวเลือกสำหรับเครื่องสแกน โดยจะแสดงผล Promise ที่แสดงผลเป็นSetOptionsResponse
ออบเจ็กต์นี้มีตัวเลือกเครื่องสแกนเวอร์ชันที่อัปเดตซึ่งดึงข้อมูลในขั้นตอนที่ 1 ของการกําหนดค่าเครื่องสแกนเนื่องจากการเปลี่ยนแปลงตัวเลือกหนึ่งอาจเปลี่ยนแปลงข้อจำกัดของอีกตัวเลือกหนึ่ง คุณจึงอาจต้องทำตามขั้นตอนเหล่านี้ซ้ำหลายครั้ง
กำลังสแกน
สร้างออบเจ็กต์
StartScanOptions
แล้วส่งให้กับstartScan()
โดยจะแสดงผล Promise ที่แก้ไขด้วยStartScanResponse
พร็อพเพอร์ตี้job
ของไฟล์คือตัวแฮนเดิลที่คุณจะใช้อ่านข้อมูลการสแกนหรือยกเลิกการสแกนส่งแฮนเดิลงานไปยัง
readScanData()
โดยจะแสดงผลเป็น Promise ที่แสดงผลด้วยออบเจ็กต์ReadScanDataResponse
หากอ่านข้อมูลได้สําเร็จ พร็อพเพอร์ตี้result
จะเท่ากับSUCCESS
และพร็อพเพอร์ตี้data
จะมีArrayBuffer
กับการสแกนบางส่วน โปรดทราบว่าestimatedCompletion
มีเปอร์เซ็นต์โดยประมาณของข้อมูลทั้งหมดที่ส่งจนถึงตอนนี้ทำขั้นตอนก่อนหน้าซ้ำจนกว่าพร็อพเพอร์ตี้
result
จะเท่ากับEOF
หรือเกิดข้อผิดพลาด
เมื่อการสแกนสิ้นสุดลง ให้โทรไปที่ closeScanner()
ด้วยแฮนเดิลของสแกนเนอร์ที่บันทึกไว้ในขั้นตอนที่ 3 โดยจะแสดงผล Promise ที่แสดงผลเป็น 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()
ซึ่งจะแสดงผลเป็น Promise ที่แสดงผลด้วยออบเจ็กต์ 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
พร็อพเพอร์ตี้
-
งาน
สตริง
ระบุแฮนเดิลงานเดียวกับที่ส่งไปยัง
cancelScan()
-
ผลลัพธ์
ผลการสแกนยกเลิกของแบ็กเอนด์ หากผลลัพธ์คือ
OperationResult.SUCCESS
หรือOperationResult.CANCELLED
แสดงว่าระบบยกเลิกการสแกนและเครื่องสแกนพร้อมเริ่มการสแกนใหม่ หากผลลัพธ์คือOperationResult.DEVICE_BUSY
แสดงว่าเครื่องสแกนยังประมวลผลการยกเลิกที่ขออยู่ ผู้โทรควรรอสักครู่แล้วลองส่งคำขออีกครั้ง ค่าผลลัพธ์อื่นๆ บ่งบอกถึงข้อผิดพลาดถาวรที่ไม่ควรลองใหม่
CloseScannerResponse
พร็อพเพอร์ตี้
-
ผลลัพธ์
ผลลัพธ์ของการปิดเครื่องสแกน แม้ว่าค่านี้จะไม่เท่ากับ
SUCCESS
แต่แฮนเดิลก็จะไม่ถูกต้องและไม่ควรนําไปใช้ดําเนินการใดๆ เพิ่มเติม -
scannerHandle
สตริง
แฮนเดิลของสแกนเนอร์เดียวกับที่ส่งไปยัง
closeScanner
Configurability
วิธีเปลี่ยนตัวเลือก
ค่าแจกแจง
"NOT_CONFIGURABLE"
ตัวเลือกเป็นแบบอ่านอย่างเดียว
"SOFTWARE_CONFIGURABLE"
ตัวเลือกนี้ตั้งค่าได้ในซอฟต์แวร์
"HARDWARE_CONFIGURABLE"
ผู้ใช้สามารถตั้งค่าตัวเลือกได้โดยการสลับหรือกดปุ่มบนเครื่องสแกน
ConnectionType
ระบุวิธีที่เครื่องสแกนเชื่อมต่อกับคอมพิวเตอร์
ค่าแจกแจง
"UNSPECIFIED"
"USB"
"NETWORK"
ค่าแจกแจง
"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
สตริง
แฮนเดิลของสแกนเนอร์เดียวกับที่ส่งไปยัง
getOptionGroups
GetScannerListResponse
พร็อพเพอร์ตี้
-
ผลลัพธ์
ผลลัพธ์ของการแจงนับ โปรดทราบว่าระบบอาจแสดงผลลัพธ์บางส่วนแม้ว่าจะบ่งบอกถึงข้อผิดพลาดก็ตาม
-
สแกนเนอร์
รายการเครื่องมือสแกนซึ่งอาจว่างเปล่าซึ่งตรงกับ
DeviceFilter
ที่ระบุ
OpenScannerResponse
พร็อพเพอร์ตี้
-
ตัวเลือก
ออบเจ็กต์ ไม่บังคับ
หาก
result
เป็นSUCCESS
ให้ระบุการแมปคีย์-ค่าโดยที่คีย์คือตัวเลือกเฉพาะอุปกรณ์ และค่าคืออินสแตนซ์ของScannerOption
-
ผลลัพธ์
ผลลัพธ์ของการเปิดเครื่องสแกน หากค่าของพร็อพเพอร์ตี้นี้คือ
SUCCESS
ระบบจะป้อนข้อมูลพร็อพเพอร์ตี้scannerHandle
และoptions
-
scannerHandle
สตริง ไม่บังคับ
หาก
result
เป็นSUCCESS
แสดงว่าเป็นแฮนเดิลของสแกนเนอร์ที่ใช้ดำเนินการเพิ่มเติมได้ -
scannerId
สตริง
รหัสสแกนเนอร์ที่ส่งไปยัง
openScanner()
OperationResult
อาร์เรย์แบบจำกัดที่ระบุผลลัพธ์ของการดำเนินการแต่ละรายการ
ค่าแจกแจง
"UNKNOWN"
เกิดความล้มเหลวที่ไม่รู้จักหรือทั่วไป
"SUCCESS"
การดำเนินการสําเร็จ
"ไม่รองรับ"
ระบบไม่รองรับการดำเนินการนี้
"ยกเลิกแล้ว"
การดําเนินการถูกยกเลิก
"DEVICE_BUSY"
อุปกรณ์ไม่ว่าง
"ไม่ถูกต้อง"
ข้อมูลหรืออาร์กิวเมนต์ที่ส่งไปยังเมธอดไม่ถูกต้อง
"WRONG_TYPE"
ค่าที่ระบุเป็นประเภทข้อมูลที่ไม่ถูกต้องสำหรับตัวเลือกพื้นฐาน
"EOF"
ไม่มีข้อมูลอื่นอีก
"ADF_JAMMED"
ตัวป้อนเอกสารติด
"ADF_EMPTY"
ตัวป้อนเอกสารว่างเปล่า
"COVER_OPEN"
ฝาเพลตวางรูปเปิดอยู่
"IO_ERROR"
เกิดข้อผิดพลาดขณะสื่อสารกับอุปกรณ์
"ACCESS_DENIED"
อุปกรณ์ต้องมีการตรวจสอบสิทธิ์
"NO_MEMORY"
Chromebook มีหน่วยความจำไม่เพียงพอที่จะดําเนินการให้เสร็จสมบูรณ์
"UNREACHABLE"
เข้าถึงอุปกรณ์ไม่ได้
"ขาดหายไป"
อุปกรณ์ยกเลิกการเชื่อมต่อแล้ว
"INTERNAL_ERROR"
เกิดข้อผิดพลาดที่อื่นนอกเหนือจากแอปพลิเคชันที่เรียก
OptionConstraint
พร็อพเพอร์ตี้
-
list
string[] | number[] ไม่บังคับ
-
สูงสุด
ตัวเลข ไม่บังคับ
-
นาที
ตัวเลข ไม่บังคับ
-
quant
ตัวเลข ไม่บังคับ
-
ประเภท
OptionGroup
พร็อพเพอร์ตี้
-
สมาชิก
string[]
อาร์เรย์ของชื่อตัวเลือกตามลำดับที่ไดรเวอร์ระบุ
-
title
สตริง
ระบุชื่อที่พิมพ์ได้ เช่น "ตัวเลือกเรขาคณิต"
OptionSetting
พร็อพเพอร์ตี้
-
ชื่อ
สตริง
ระบุชื่อตัวเลือกที่จะตั้งค่า
-
ประเภท
ระบุประเภทข้อมูลของตัวเลือก ประเภทข้อมูลที่ขอต้องตรงกับประเภทข้อมูลจริงของตัวเลือกพื้นฐาน
-
value
string | number | boolean | number[] ไม่บังคับ
ระบุค่าที่จะตั้ง ปล่อยการตั้งค่าเป็น "ไม่ได้ตั้งค่า" เพื่อขอการตั้งค่าอัตโนมัติสำหรับตัวเลือกที่เปิดใช้
autoSettable
ประเภทข้อมูลที่ระบุสำหรับvalue
ต้องตรงกับtype
OptionType
ประเภทข้อมูลของตัวเลือก
ค่าแจกแจง
"UNKNOWN"
ระบบไม่รู้จักประเภทข้อมูลของตัวเลือก ระบบจะไม่ตั้งค่าพร็อพเพอร์ตี้ value
"BOOL"
พร็อพเพอร์ตี้ value
จะเป็นค่าใดค่าหนึ่งต่อไปนี้ true
false
"INT"
จำนวนเต็ม 32 บิตที่มีเครื่องหมาย พร็อพเพอร์ตี้ value
จะเป็น long หรือ long[] โดยขึ้นอยู่กับว่าตัวเลือกใช้ค่าได้มากกว่า 1 ค่าหรือไม่
"FIXED"
ตัวเลขทศนิยม 2 ตำแหน่งในช่วง -32768-32767.9999 ที่มีความละเอียด 1/65535 พร็อพเพอร์ตี้ value
จะเป็น double หรือ double[] ขึ้นอยู่กับว่าตัวเลือกใช้ค่ามากกว่า 1 ค่าหรือไม่ ระบบจะปัดเศษค่า Double ที่แสดงได้ไม่ถูกต้องเป็นค่าที่อยู่ระหว่างช่วงและความแม่นยําที่พร้อมใช้งาน
"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 -
งาน
สตริง
ระบุแฮนเดิลงานที่ส่งไปยัง
readScanData()
-
ผลลัพธ์
ผลลัพธ์ของการอ่านข้อมูล หากค่าเป็น
SUCCESS
แสดงว่าdata
มีข้อมูลรูปภาพถัดไป (อาจเป็นข้อมูลที่มีความยาวเป็น 0) ซึ่งพร้อมสําหรับการอ่าน หากค่าเป็นEOF
data
จะมีข้อมูลรูปภาพส่วนสุดท้าย
ScannerInfo
พร็อพเพอร์ตี้
-
connectionType
ระบุวิธีที่เครื่องสแกนเชื่อมต่อกับคอมพิวเตอร์
-
deviceUuid
สตริง
สำหรับการจับคู่กับรายการ
ScannerInfo
อื่นๆ ที่ชี้ไปยังอุปกรณ์จริงเครื่องเดียวกัน -
imageFormats
string[]
อาร์เรย์ของประเภท MIME ที่ขอการสแกนกลับได้
-
ผู้ผลิต
สตริง
ผู้ผลิตเครื่องสแกน
-
รุ่น
สตริง
รุ่นของสแกนเนอร์ (หากมี) หรือคำอธิบายทั่วไป
-
ชื่อ
สตริง
ชื่อที่มนุษย์อ่านได้สำหรับเครื่องสแกนที่จะแสดงใน UI
-
protocolType
สตริง
คำอธิบายที่มนุษย์อ่านได้ของโปรโตคอลหรือไดรเวอร์ที่ใช้เข้าถึงสแกนเนอร์ เช่น Mopria, WSD หรือ epsonds ซึ่งมีประโยชน์หลักในการอนุญาตให้ผู้ใช้เลือกระหว่างโปรโตคอลต่างๆ หากอุปกรณ์รองรับโปรโตคอลหลายรายการ
-
scannerId
สตริง
รหัสของสแกนเนอร์ที่เฉพาะเจาะจง
-
รักษาความปลอดภัย
บูลีน
หากเป็น "จริง" การรับส่งข้อมูลของการเชื่อมต่อเครื่องสแกนจะไม่สามารถถูกขัดขวางโดยโปรแกรมรับฟังแบบพาสซีฟ เช่น TLS หรือ USB
ScannerOption
พร็อพเพอร์ตี้
-
ความสามารถในการกําหนดค่า
ระบุว่าสามารถเปลี่ยนแปลงตัวเลือกได้หรือไม่และอย่างไร
-
ข้อจํากัด
OptionConstraint ไม่บังคับ
กำหนด
OptionConstraint
ในตัวเลือกเครื่องสแกนปัจจุบัน -
คำอธิบาย
สตริง
คำอธิบายแบบยาวของตัวเลือก
-
isActive
บูลีน
บ่งบอกว่าตัวเลือกใช้งานได้และสามารถตั้งค่าหรือเรียกข้อมูลได้ หากเป็นเท็จ ระบบจะไม่ตั้งค่าพร็อพเพอร์ตี้
value
-
isAdvanced
บูลีน
ระบุว่า UI ไม่ควรแสดงตัวเลือกนี้โดยค่าเริ่มต้น
-
isAutoSettable
บูลีน
ไดร์เวอร์เครื่องสแกนจะตั้งค่าให้โดยอัตโนมัติ
-
isDetectable
บูลีน
บ่งบอกว่าระบบตรวจพบตัวเลือกนี้ได้จากซอฟต์แวร์
-
isEmulated
บูลีน
จำลองโดยไดรเวอร์เครื่องสแกนหากเป็นจริง
-
ชื่อ
สตริง
ชื่อตัวเลือกโดยใช้ตัวอักษร ASCII พิมพ์เล็ก ตัวเลข และขีดกลาง ไม่อนุญาตให้ใช้เครื่องหมายกำกับการออกเสียง
-
title
สตริง
ชื่อแบบบรรทัดเดียวที่พิมพ์ได้
-
ประเภท
ประเภทข้อมูลที่อยู่ในพร็อพเพอร์ตี้
value
ซึ่งจําเป็นสําหรับการตั้งค่าตัวเลือกนี้ -
หน่วย
หน่วยวัดของตัวเลือกนี้
-
value
string | number | boolean | number[] ไม่บังคับ
ค่าปัจจุบันของตัวเลือก หากเกี่ยวข้อง โปรดทราบว่าประเภทข้อมูลของพร็อพเพอร์ตี้นี้ต้องตรงกับประเภทข้อมูลที่ระบุใน
type
ScanOptions
พร็อพเพอร์ตี้
-
maxImages
ตัวเลข ไม่บังคับ
จำนวนรูปภาพที่สแกนได้ที่อนุญาต ค่าเริ่มต้นคือ 1
-
mimeTypes
string[] ไม่บังคับ
ประเภท MIME ที่ผู้โทรยอมรับ
ScanResults
พร็อพเพอร์ตี้
-
dataUrls
string[]
อาร์เรย์ของ URL รูปภาพข้อมูลในรูปแบบที่ส่งเป็นค่า "src" ไปยังแท็กรูปภาพได้
-
mimeType
สตริง
ประเภท MIME ของ
dataUrls
SetOptionResult
พร็อพเพอร์ตี้
-
ชื่อ
สตริง
ระบุชื่อตัวเลือกที่ตั้งไว้
-
ผลลัพธ์
ระบุผลลัพธ์ของการตั้งค่าตัวเลือก
SetOptionsResponse
พร็อพเพอร์ตี้
-
ตัวเลือก
ออบเจ็กต์ ไม่บังคับ
การแมปคีย์-ค่าที่อัปเดตจากชื่อตัวเลือกเป็นค่า
ScannerOption
ที่มีการกำหนดค่าใหม่หลังจากพยายามตั้งค่าตัวเลือกที่ระบุทั้งหมด โครงสร้างนี้มีโครงสร้างเดียวกับพร็อพเพอร์ตี้options
ในOpenScannerResponse
ระบบจะตั้งค่าพร็อพเพอร์ตี้นี้แม้ว่าจะตั้งค่าตัวเลือกบางอย่างไม่สำเร็จ แต่จะไม่ตั้งค่าหากดึงข้อมูลการกําหนดค่าที่อัปเดตไม่สําเร็จ (เช่น หากสแกนเนอร์ตัดการเชื่อมต่อไปในระหว่างการสแกน)
-
ผลลัพธ์
อาร์เรย์ของผลลัพธ์ 1 รายการสําหรับ
OptionSetting
แต่ละรายการที่ส่งเข้ามา -
scannerHandle
สตริง
ระบุตัวแฮนเดิลของสแกนเนอร์ที่ส่งไปยัง
setOptions()
StartScanOptions
พร็อพเพอร์ตี้
-
รูปแบบ
สตริง
ระบุประเภท MIME เพื่อแสดงผลข้อมูลที่สแกน
-
maxReadSize
ตัวเลข ไม่บังคับ
หากระบุค่าที่ไม่ใช่ 0 ระบบจะจำกัดจำนวนไบต์ที่สแกนสูงสุดที่แสดงในการตอบกลับ
readScanData
รายการเดียวเป็นค่านั้น ค่าที่เล็กที่สุดที่อนุญาตคือ 32768 (32 KB) หากไม่ได้ระบุพร็อพเพอร์ตี้นี้ ขนาดของข้อมูลโค้ดที่ส่งคืนอาจเท่ากับขนาดของรูปภาพที่สแกนทั้งหมด
StartScanResponse
พร็อพเพอร์ตี้
-
งาน
สตริง ไม่บังคับ
หาก
result
เป็นSUCCESS
ให้ระบุแฮนเดิลที่ใช้อ่านข้อมูลการสแกนหรือยกเลิกงานได้ -
ผลลัพธ์
ผลลัพธ์ของการเริ่มการสแกน หากค่าของพร็อพเพอร์ตี้นี้คือ
SUCCESS
ระบบจะป้อนข้อมูลพร็อพเพอร์ตี้job
-
scannerHandle
สตริง
ระบุแฮนเดิลของสแกนเนอร์เดียวกันกับที่ส่งไปยัง
startScan()
เมธอด
cancelScan()
chrome.documentScan.cancelScan(
job: string,
callback?: function,
)
ยกเลิกการสแกนที่เริ่มแล้วและแสดงผล Promise ที่แสดงผลด้วยออบเจ็กต์ CancelScanResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังการเรียกกลับแทน
พารามิเตอร์
-
งาน
สตริง
แฮนเดิลของงานสแกนที่มีการใช้งานซึ่งก่อนหน้านี้แสดงผลจากการเรียกใช้
startScan
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: CancelScanResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<CancelScanResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
closeScanner()
chrome.documentScan.closeScanner(
scannerHandle: string,
callback?: function,
)
ปิดสแกนเนอร์ด้วยแฮนเดิลที่ส่งผ่านและแสดงผล Promise ที่แสดงผลด้วยออบเจ็กต์ CloseScannerResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังการเรียกกลับแทน แม้ว่าการตอบกลับจะไม่สำเร็จ แฮนเดิลที่ระบุจะใช้งานไม่ได้และไม่ควรนำมาใช้กับการดำเนินการเพิ่มเติม
พารามิเตอร์
-
scannerHandle
สตริง
ระบุแฮนเดิลของสแกนเนอร์ที่เปิดอยู่ซึ่งแสดงผลก่อนหน้านี้จากการเรียกใช้
openScanner
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: CloseScannerResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<CloseScannerResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
getOptionGroups()
chrome.documentScan.getOptionGroups(
scannerHandle: string,
callback?: function,
)
รับชื่อกลุ่มและตัวเลือกสมาชิกจากเครื่องสแกนซึ่ง openScanner
เปิดไว้ก่อนหน้านี้ เมธอดนี้จะแสดงผล Promise ที่แสดงผลด้วยออบเจ็กต์ GetOptionGroupsResponse
หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลแทน
พารามิเตอร์
-
scannerHandle
สตริง
แฮนเดิลของสแกนเนอร์ที่เปิดอยู่ซึ่งแสดงผลจากการเรียกใช้
openScanner
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: GetOptionGroupsResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<GetOptionGroupsResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
getScannerList()
chrome.documentScan.getScannerList(
filter: DeviceFilter,
callback?: function,
)
รับรายการสแกนเนอร์ที่ใช้ได้และแสดงผล Promise ที่แสดงผลด้วยออบเจ็กต์ GetScannerListResponse
หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลแทน
พารามิเตอร์
-
ตัวกรอง
DeviceFilter
ที่ระบุว่าควรแสดงประเภทของสแกนเนอร์ใด -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: GetScannerListResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<GetScannerListResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
openScanner()
chrome.documentScan.openScanner(
scannerId: string,
callback?: function,
)
เปิดสแกนเนอร์สําหรับการเข้าถึงแบบพิเศษและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ OpenScannerResponse
หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลแทน
พารามิเตอร์
-
scannerId
สตริง
รหัสของเครื่องสแกนที่จะเปิด ค่านี้เป็นค่าที่แสดงผลจากการเรียก
getScannerList
ก่อนหน้านี้ -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: OpenScannerResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<OpenScannerResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
readScanData()
chrome.documentScan.readScanData(
job: string,
callback?: function,
)
อ่านข้อมูลรูปภาพที่มีอยู่อีกกลุ่มหนึ่งจากแฮนเดิลงานที่ใช้งานอยู่ และแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ReadScanDataResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังการเรียกกลับแทน
**หมายเหตุ:**ผลลัพธ์การตอบกลับต้องเป็น SUCCESS
ที่มีสมาชิก data
ที่มีความยาวเป็น 0 ซึ่งหมายความว่าสแกนเนอร์ยังทำงานอยู่แต่ยังไม่มีข้อมูลเพิ่มเติม ผู้โทรควรรอสักครู่แล้วลองอีกครั้ง
เมื่องานสแกนเสร็จสมบูรณ์ การตอบกลับจะมีค่าผลลัพธ์เป็น EOF
การตอบกลับนี้อาจมีสมาชิก data
ที่ไม่ใช่ 0 รายการสุดท้าย
พารามิเตอร์
-
งาน
สตริง
แฮนเดิลงานที่ทำงานอยู่ซึ่งแสดงผลก่อนหน้านี้จาก
startScan
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: ReadScanDataResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<ReadScanDataResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
scan()
chrome.documentScan.scan(
options: ScanOptions,
callback?: function,
)
ทำการสแกนเอกสารและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ ScanResults
หากมีการส่ง Callback ไปยังฟังก์ชันนี้ ระบบจะส่งข้อมูลที่แสดงผลแทน
พารามิเตอร์
-
ตัวเลือก
ออบเจ็กต์ที่มีพารามิเตอร์การสแกน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(result: ScanResults) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<ScanResults>
Chrome 96 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
setOptions()
chrome.documentScan.setOptions(
scannerHandle: string,
options: OptionSetting[],
callback?: function,
)
ตั้งค่าตัวเลือกในเครื่องสแกนที่กำหนดและแสดงผล Promise ที่แก้ไขด้วยออบเจ็กต์ SetOptionsResponse
ที่มีผลลัพธ์ของการพยายามตั้งค่าทุกค่าตามลําดับของออบเจ็กต์ OptionSetting
ที่ส่งเข้ามา หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังการเรียกกลับแทน
พารามิเตอร์
-
scannerHandle
สตริง
ที่จับของสแกนเนอร์เพื่อตั้งค่าตัวเลือก ค่านี้ควรเป็นค่าที่แสดงผลก่อนหน้านี้จากการเรียกใช้
openScanner
-
ตัวเลือก
รายการออบเจ็กต์
OptionSetting
ที่จะนำไปใช้กับเครื่องสแกน -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: SetOptionsResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<SetOptionsResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ
startScan()
chrome.documentScan.startScan(
scannerHandle: string,
options: StartScanOptions,
callback?: function,
)
เริ่มการสแกนในเครื่องสแกนที่กำหนดและแสดงผล Promise ที่แสดงผลเป็น StartScanResponse
หากใช้การเรียกกลับ ระบบจะส่งออบเจ็กต์ไปยังการเรียกกลับแทน หากการเรียกใช้สำเร็จ การตอบกลับจะมีแฮนเดิลงานซึ่งสามารถใช้ในการเรียกใช้ครั้งต่อๆ ไปเพื่ออ่านข้อมูลการสแกนหรือยกเลิกการสแกนได้
พารามิเตอร์
-
scannerHandle
สตริง
แฮนเดิลของเครื่องสแกนแบบเปิด ค่านี้ควรเป็นค่าที่แสดงผลก่อนหน้านี้จากการเรียกใช้
openScanner
-
ตัวเลือก
ออบเจ็กต์
StartScanOptions
ที่ระบุตัวเลือกที่จะใช้สําหรับการสแกน พร็อพเพอร์ตี้StartScanOptions.format
ต้องตรงกับรายการใดรายการหนึ่งที่แสดงในScannerInfo
ของสแกนเนอร์ -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(response: StartScanResponse) => void
-
การตอบกลับ
-
การคืนสินค้า
-
Promise<StartScanResponse>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะได้รับการแก้ไขด้วยประเภทเดียวกันกับที่ส่งไปยังการเรียกกลับ