06-ShiMetaAPI介绍以及使用 ======================== 1.1 前言 ------ 介绍ShiMeta系统特有API的使用方式,便于快速开发使用 1.2 资源 ------ 示例程序源码,由ShiMeta提供的API示例程序,便于二次开发人员用于API接口测试和功能参考 .. hint:: 1) 文档获取:https://gitee.com/robots778/oh_shimeta_api_demo/tree/develop/ 2) API文档获取 3) Full-SDK ;完整的系统SDK API 1.3 使用 ------ 1. 导包 .. code:: import shimeta from '@ohos.shimeta' 2. 根据API文档调用相关函数 .. code:: let version = shimeta.info_getApiVersion() 1.4 同步和异步使用 ----------------- .. tip:: NAPI一般支持两种方式,一种callback,一种promise. * Callback 仅支持异步回调,其中回调可选包含错误码,回调参数.一般在回调中判断错误码再执行后续步骤 * Promise 支持异步调用,或者配合wait aync 等进行同步调用,其执行错误或执行结果错误时, 会直接抛出异常.需要try catch 捕捉并处理. * Promise普遍兼容Callback并扩展,以下仅介绍Promise的同步异步使用方式. 1.4.1 通过Promise同步使用 .. code:: public static async getAvailableStorage() { let number = await storageStatistics.getFreeSize() let availableStorage = (number / 1024 / 1024 / 1024).toFixed(2).toString(); Logger.d(TAG, "getAvailableStorage successfully:" + JSON.stringify(availableStorage)); return availableStorage + `GB` } 1.4.2 通过Promise异步使用 .. code:: let path = "/dev"; statvfs.getFreeSize(path).then((number) => { console.info("getFreeSize promise successfully, Size: " + number); }).catch((err) => { console.info("getFreeSize failed with error message: " + err.message + ", error code: " + err.code); }); 1.4.3 通过Callback异步使用 .. code:: let path = "/dev"; statvfs.getFreeSize(path, (err, number) => { if (err) { console.info("getFreeSize failed with error message: " + err.message + ", error code: " + err.code); } else { console.info("getFreeSize callback successfully, Size: " + number); } });