东莞寮步网站建设网络公司,产品推广的句子,哔哩哔哩网站电子商务建设,经典软文推广案例一、chrome.system.storage
您可以使用 chrome.system.storage API 查询存储设备信息#xff0c;并在连接和分离可移动存储设备时收到通知。
权限
system.storage
类型
EjectDeviceResultCode
枚举
success 移除命令成功执行 - 应用可以提示用户移除设备。…一、chrome.system.storage
您可以使用 chrome.system.storage API 查询存储设备信息并在连接和分离可移动存储设备时收到通知。
权限
system.storage
类型
EjectDeviceResultCode
枚举
success 移除命令成功执行 - 应用可以提示用户移除设备。
in_use 设备正被其他应用使用。移除失败在其他应用完成对设备的操作之前用户不得移除设备。
no_such_device 没有已知的此类设备。
failure 移除命令失败。
StorageAvailableCapacityInfo
属性 availableCapacity number 存储设备的可用容量以字节为单位。 id 字符串 getAvailableCapacity 函数参数 id 的 id。
StorageUnitInfo
属性 容量 number 存储空间总量以字节为单位。 id 字符串 唯一标识存储设备的临时 ID。此 ID 在单个应用的同一运行时内保持不变。它不是应用的不同运行之间或不同应用之间的永久性标识符。 name 字符串 存储单元的名称。 类型 StorageUnitType 存储单元的媒体类型。
StorageUnitType
枚举
fixed 存储具有固定介质例如或 SSD。
removable 存储空间可移动例如U 盘。
unknown 存储类型未知。 方法
ejectDevice()
ph typex-smartling-placeholder/ph 承诺
chrome.system.storage.ejectDevice(id: string,callback?: function,
)
弹出可移动存储设备。
参数 id 字符串 callback 函数可选 callback 参数如下所示 (result: EjectDeviceResultCode) void
chrome.system.storage | API | Chrome for Developers
二、chrome.system.storage api接口定义c
1、system_storage.idl
extensions\common\api\system_storage.idl
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.// Use the codechrome.system.storage/code API to query storage device
// information and be notified when a removable storage device is attached and
// detached.
namespace system.storage {enum StorageUnitType {// The storage has fixed media, e.g. hard disk or SSD.fixed,// The storage is removable, e.g. USB flash drive.removable,// The storage type is unknown.unknown};dictionary StorageUnitInfo {// The transient ID that uniquely identifies the storage device.// This ID will be persistent within the same run of a single application.// It will not be a persistent identifier between different runs of an// application, or between different applications.DOMString id;// The name of the storage unit.DOMString name;// The media type of the storage unit.StorageUnitType type;// The total amount of the storage space, in bytes.double capacity;};dictionary StorageAvailableCapacityInfo {// A copied |id| of getAvailableCapacity function parameter |id|.DOMString id;// The available capacity of the storage device, in bytes.double availableCapacity;};[inline_doc] enum EjectDeviceResultCode {// The ejection command is successful -- the application can prompt the user// to remove the device.success,// The device is in use by another application. The ejection did not// succeed; the user should not remove the device until the other// application is done with the device.in_use,// There is no such device known.no_such_device,// The ejection command failed.failure};callback EjectDeviceCallback void (EjectDeviceResultCode result);callback StorageInfoCallback void (StorageUnitInfo[] info);callback GetAvailableCapacityCallback void (StorageAvailableCapacityInfo info);interface Functions {// Get the storage information from the system. The argument passed to the// callback is an array of StorageUnitInfo objects.[supportsPromises] static void getInfo(StorageInfoCallback callback);// Ejects a removable storage device.[supportsPromises] static void ejectDevice(DOMString id,EjectDeviceCallback callback);// Get the available capacity of a specified |id| storage device.// The |id| is the transient device ID from StorageUnitInfo.[supportsPromises] static void getAvailableCapacity(DOMString id,GetAvailableCapacityCallback callback);};interface Events {// Fired when a new removable storage is attached to the system.static void onAttached(StorageUnitInfo info);// Fired when a removable storage is detached from the system.static void onDetached(DOMString id);};};2、system_storage.idl 自动生成c文件
out\Debug\gen\extensions\common\api\system_storage.cc
out\Debug\gen\extensions\common\api\system_storage.h
3、chrome.system.storage api c定义
extensions\browser\api\system_storage\system_storage_api.h
extensions\browser\api\system_storage\system_storage_api.cc
namespace extensions {// Implementation of the systeminfo.storage.get API. It is an asynchronous
// call relative to browser UI thread.
class SystemStorageGetInfoFunction : public ExtensionFunction {public:DECLARE_EXTENSION_FUNCTION(system.storage.getInfo, SYSTEM_STORAGE_GETINFO)SystemStorageGetInfoFunction() default;private:~SystemStorageGetInfoFunction() override default;// ExtensionFunction:ResponseAction Run() override;void OnGetStorageInfoCompleted(bool success);
};class SystemStorageEjectDeviceFunction : public ExtensionFunction {public:DECLARE_EXTENSION_FUNCTION(system.storage.ejectDevice,SYSTEM_STORAGE_EJECTDEVICE)protected:~SystemStorageEjectDeviceFunction() override default;// ExtensionFunction:ResponseAction Run() override;private:void OnStorageMonitorInit(const std::string transient_device_id);// Eject device request handler.void HandleResponse(storage_monitor::StorageMonitor::EjectStatus status);
};class SystemStorageGetAvailableCapacityFunction : public ExtensionFunction {public:DECLARE_EXTENSION_FUNCTION(system.storage.getAvailableCapacity,SYSTEM_STORAGE_GETAVAILABLECAPACITY)SystemStorageGetAvailableCapacityFunction();private:void OnStorageMonitorInit(const std::string transient_id);void OnQueryCompleted(const std::string transient_id,double available_capacity);~SystemStorageGetAvailableCapacityFunction() override;// ExtensionFunction:ResponseAction Run() override;scoped_refptrbase::SequencedTaskRunner query_runner_;
};} // namespace extensions