接口

通用规则

同步

同步方法调用后必须等到方法结果返回后才能继续后续的行为,返回值可以是任意类型。

  • 示例
var info = app.getInfo();
console.log(JSON.stringify(info));

异步

异步方法调用整个过程不会阻碍调用者的工作。业务执行完成后会调用开发者提供的回调函数。

  • 异步接口支持的回调函数

提示:

  • success、fail、cancel 和 complete 四个回调函数是否支持参考具体接口描述
  • success、fail 和 cancel 三个回调函数的触发是互斥的,即会且只会在一个回调函数中触发,触发任意一个都会再次调用 complete 回调。
  • 示例
battery.getStatus({
  success: function (data) {
    console.log("success get battery level:" + data.level);
  },
  fail: function (data, code) {
    console.log("fail to get battery level code:" + code);
  },
});

订阅

订阅接口不会立即返回结果,开发者要在参数中设置相应的回调函数;该回调函数会在完成时或者事件变化时进行回调;可以执行多次。

  • 订阅接口支持以下回调函数

  • 以地理位置接口为例

geolocation.subscribe({
  success: function (data) {
    console.log("get location. latitude:" + data.latitude);
  },
  fail: function (data, code) {
    console.log("fail to get location. code:" + code);
  },
});

通用错误码

该章节提供公共的错误码。

其中,错误码 200 为系统通用错误码,所有系统未知异常发生时抛出。比如框架申请内存空间失败等。

code含义
200通用错误。
202参数错误。
300I/O 错误。

基本功能

应用上下文

导入模块

import app from "@system.app";

app.getInfo()

获取当前应用配置文件中声明的信息。

  • 参数

  • 返回值

    参数名类型说明
    appNamestring表示应用的名称。
    versionNamestring表示应用的版本名称。
    versionCodenumber表示应用的版本号。
  • 示例

var info = app.getInfo();
console.log(JSON.stringify(info));

app.terminate()

退出当前 Ability

  • 参数

  • 示例

app.terminate();

日志打印

导入模块

无需导入。

日志分类

打印一段文本信息,console.debug|log|info|warn|error(message)

  • 参数

    参数名类型必填说明
    messagestring表示要打印的文本信息。
  • 示例

var versionCode = 1;
console.info("Hello World. The current version code is " + versionCode);

提示:

console.log()打印的是 debug 级别日志信息。

页面路由

导入模块

import router from "@system.router";

router.replace(OBJECT)

用应用内的某个页面替换当前页面,并销毁被替换的页面。

  • 参数

    参数名类型必填说明
    uristring目标页面的 uri,可以是一下的两种格式: 页面绝对路径,由配置文件中 pages 列表提供,例如:pages/index/indexpages/detail/detail 特殊值,如果 uri 的值是"/",则跳转到首页。
    paramsObject跳转时要同时传递到目标页面的数据,跳转到目标页面后,参数可以在页面中直接使用,如 this.data1(data1 为跳转时 params 参数中的 key 值)。如果目标页面中已有该字段,则其值会被传入的字段值覆盖。
  • 示例

// 在当前页面中
export default {
  replacePage() {
    router.replace({
      uri: "pages/detail/detail",
      params: {
        data1: "message",
      },
    });
  },
};
// 在detail页面中
export default {
  data: {
    data1: "default",
  },
  onInit() {
    console.info("showData1:" + this.data1);
  },
};

应用配置

导入模块

import configuration from "@system.configuration";

configuration.getLocale()

获取应用当前的语言和地区。默认与系统的语言和地区同步。

  • 返回值

    参数名类型说明
    languagestring语言。例如:zh。
    countryOrRegionstring国家或地区。例如:CN。
    dirstring文字布局方向。取值范围: ltr:从左到右;rtl:从右到左。
  • 示例

const localeInfo = configuration.getLocale();
console.info(localeInfo.language);

定时器

支持设备

表 1 API 的设备支持情况

API轻量级智能穿戴
setTimeout支持
clearTimeout支持
setInterval支持
clearInterval支持

导入模块

无需导入。

权限列表

setTimeout(handler[, delay[, ...args]])

设置一个定时器,该定时器在定时器到期后执行一个函数。

  • 参数

    参数名类型必填说明
    handlerFunction定时器到期后执行函数。
    delaynumber延迟的毫秒数,函数的调用会在该延迟之后发生。如果省略该参数,delay 取默认值 0,意味着“马上”执行,或尽快执行。
    ...argsArray<any>附加参数,一旦定时器到期,他们会作为参数传递给 handler。
  • 返回值

    timeoutID 定时器的 ID

  • 示例

var timeoutID = setTimeout(function () {
  console.log("delay 1s");
}, 1000);

clearTimeout(timeoutID)

取消了先前通过调用 setTimeout()建立的定时器。

  • 参数

    参数名类型必填说明
    timeoutIDnumber要取消定时器的 ID, 是由 setTimeout()返回的。
  • 示例

var timeoutID = setTimeout(function () {
  console.log("do after 1s delay.");
}, 1000);

clearTimeout(timeoutID);

setInterval(handler[, delay[, ...args]])

重复调用一个函数,在每次调用之间具有固定的时间延迟。

  • 参数

    参数名类型必填说明
    handlerFunction要重复调用的函数。
    delaynumber延迟的毫秒数(一秒等于 1000 毫秒),函数的调用会在该延迟之后发生。
    ...argsArray<any>附加参数,一旦定时器到期,他们会作为参数传递给 handler。
  • 返回值

    intervalID 重复定时器 ID

  • 示例

var intervalID = setInterval(function () {
  console.log("do very 1s.");
}, 1000);

clearInterval(intervalID)

可取消先前通过 setInterval() 设置的重复定时任务。

  • 参数

    参数名类型必填说明
    intervalIDnumber要取消的重复定时器的 ID,是由 setInterval() 返回的。
  • 示例
var intervalID = setInterval(function () {
  console.log("do very 1s.");
}, 1000);

clearInterval(intervalID);

页面路由

接口声明

无需声明

导入模块

import router from '@system.router'const router = require('@system.router')

接口定义

router.push(OBJECT)

跳转到应用内的某个页面

参数:

参数类型必填说明
uriString要跳转到的 uri,可以是下面的格式:包含 schema 的完整 uri;目前支持的 schema 有 tel,sms 和 mailto,例如 tel:10086。以‘/’开头的应用内页面的路径;例:/about。以非‘/’开头的应用内页面的名称;例:About。特殊的,如果 uri 的值是"/",则跳转到 path 为"/"的页,没有则跳转到首页支持包含 schema 的完整 uri。对于带有 schema 的 uri,处理流程如下:查找 app 下所有 page 的 filter 设置来选择合适的 page 处理请求(参见 manifest 文件)如果没有合适的 page 能够处理请求,会使用默认策略来处理请求。目前默认策略支持对 http、https、internal 这几种 schema 的处理如果默认策略也不能处理请求,会尝试使用系统中的应用来处理请求如果没有系统应用可以处理请求,会抛弃请求默认策略的处理逻辑:如果 schema 是 http/https,会用内置的 web 页面打开网页如果 schema 是 internal(参见文件组织),会根据 uri 的文件扩展名来确定文件类型,再调用系统中的应用打开文件如果 schema 是 hap(参见 hap 链接),会跳转到 hap 链接所支持的类型

示例:

  • 应用内切换页面
    • path 切换
      router.push({
        uri: "/about",
        params: {
          testId: "1",
        },
      });
      
    • name 切换
      // open page by name
      router.push({
        uri: "About",
        params: {
          testId: "1",
        },
      });
      
  • 打开另一个快应用
router.push({
  uri: "hap://app/com.example.quickapp/page?key=value",
});

router.replace(OBJECT)

跳转到应用内的某个页面,当前页面无法返回

参数:

参数类型必填说明
uriString要跳转到的 uri,可以是下面的格式:以"/"开头的应用内页面的路径;例:/about。以非"/"开头的应用内页面的名称;例:About。特殊的,如果 uri 的值是"/",则跳转到 path 为"/"的页,没有则跳转到首页
paramsObject跳转时需要传递的数据,参数可以在目标页面中通过 this.param1 的方式使用,param1 为 json 中的参数名,param1 对应的值会统一转换为 String 类型。使用 this.param1 变量时,需要在目标页面中在 public(应用外传参)或 protected (应用内传参)下定义 key 名相同的属性

示例:

router.replace({
  uri: "/test",
  params: {
    testId: "1",
  },
});

router.back(OBJECT)

返回指定页面

参数:

参数类型必填说明
pathString返回目标页面的路径,可以是以下几种取值:不传该参数,返回上一页面以"/"开头的应用内已打开页面的路径;例:/about。特殊的,如果 path 的值是"/",则跳转到页面名称为"/"的页,没有则跳转到首页注意点:path 需要是以"/"开头的当前应用已经打开的页面路径,否则均视为无效参数,返回上一页面若根据 path 未匹配到已经打开的页面,返回上一页面若根据 path 参数匹配到多个页面,返回至最后打开的页面

示例:

// A页面, open page by name
router.push({
  uri: "B",
});
// B页面, open page by name
router.push({
  uri: "C",
});
// C页面, open page by name
router.push({
  uri: "D",
});
// D页面, open page by name
router.push({
  uri: "E",
});
// E页面不传入页面路径,返回至D页面
router.back();
// D页面不传入页面名称,返回至C页面
router.back();
// C页面传入页面路径,返回至A页面
router.back({
  path: "/A",
});

router.clear()

清空所有历史页面记录,仅保留当前页面

参数:

示例:

router.clear();

router.getLength()

获取当前页面栈的页面数量

返回值:

类型说明
Number页面数量

示例:

var length = router.getLength();
console.log(`page's length = ${length}`);

router.getState()

获取当前页面状态

返回参数:

参数名类型说明
indexNumber当前页面在页面栈中的位置
nameString当前页面的名称
pathString当前页面的路径

示例:

var page = router.getState();
console.log(`page index = ${page.index}`);
console.log(`page name = ${page.name}`);
console.log(`page path = ${page.path}`);

router.getPages()

获取当前页面栈列表

返回值:

类型说明
Array页面栈列表。数组每一项都为 Object 类型。

数组每一项构成:

字段类型说明
nameString页面的名称
pathString页面的路径

示例:

var stacks = router.getPages();
console.log("栈底页面名称为:", stacks[0].name); // 如 list、detail 等
console.log("栈底页面路径为:", stacks[0].path); // 如 /list、/detail、/home/preview

文件数据

数据存储

导入模块

import storage from "@system.storage";

storage.get(OBJECT)

读取存储的内容。

  • 参数

    参数名类型必填说明
    keystring内容索引。 字符串最大长度为 32,且不能包含“/"*+,:;<=>?[] | \x7F”等特殊符号。
    defaultstringkey 不存在则返回的默认值。如果未指定,则返回空字符串,长度为 0。
    successFunction接口调用成功的回调函数,返回存储的内容。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • 示例

storage.get({
  key: "storage_key",
  success: function (data) {
    console.log("call storage.get success: " + data);
  },
  fail: function (data, code) {
    console.log("call storage.get fail, code: " + code + ", data: " + data);
  },
  complete: function () {
    console.log("call complete");
  },
});

storage.set(OBJECT)

修改存储的内容。

  • 参数

    参数名类型必填说明
    keystring要修改的存储内容的索引。字符串最大长度为 32,且不能包含“/"*+,:;<=>?[] | \x7F”等特殊符号。
    valuestring新值。最大长度 128。value 是长度为 0 的空字符串,则删除索引为 key 的数据项。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • 示例

storage.set({
  key: "storage_key",
  value: "storage value",
  success: function () {
    console.log("call storage.set success.");
  },
  fail: function (data, code) {
    console.log("call storage.set fail, code: " + code + ", data: " + data);
  },
});

storage.clear(OBJECT)

清空存储的内容。

  • 参数

    参数名类型必填说明
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • 示例

storage.clear({
  success: function () {
    console.log("call storage.clear success.");
  },
  fail: function (data, code) {
    console.log("call storage.clear fail, code: " + code + ", data: " + data);
  },
});

storage.delete(OBJECT)

删除存储的内容。

  • 参数

    参数名类型必填说明
    keystring内容索引。字符串最大长度为 32,且不能包含“/"*+,:;<=>?[] | \x7F”等特殊符号。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • 示例

storage.delete({
  key: "Storage1",
  success: function () {
    console.log("call storage.delete success.");
  },
  fail: function (data, code) {
    console.log("call storage.delete fail, code: " + code + ", data: " + data);
  },
});

文件存储

导入模块

import file from "@system.file";

file.move(OBJECT)

将指定文件移动到其他指定位置。

  • 参数

    参数名类型必填说明
    srcUristring要移动的文件的 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    dstUristring文件要移动到的位置的 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    successFunction接口调用成功的回调函数,返回文件要移动到的位置的 uri。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.move({
  srcUri: "internal://app/myfiles1",
  dstUri: "internal://app/myfiles2",
  success: function (uri) {
    console.log("call success callback success");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.copy(OBJECT)

将指定文件拷贝并存储到指定位置,接口所使用的 URI 描述详见文件组织。

  • 参数

    参数名类型必填说明
    srcUristring要拷贝的文件的 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    dstUristring文件要拷贝到的位置的 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    successFunction接口调用成功的回调函数,返回文件要拷贝到的位置的 uri。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.copy({
  srcUri: "internal://app/file.txt",
  dstUri: "internal://app/file_copy.txt",
  success: function (uri) {
    console.log("call success callback success");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.list(OBJECT)

获取指定路径下全部文件的列表,接口所使用的 URI 描述详见文件组织。

  • 参数

    参数名类型必填说明
    uristring目录 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • success 返回值:

    参数名类型说明
    fileListArray<FileInfo>获取的文件列表,其中每个文件的信息的格式为: { uri:'file1', lastModifiedTime:1589965924479, length:10240, type: 'file' }
  • 表 1 FileInfo

    参数名类型说明
    uristring文件的 uri。
    lastModifiedTimenumber文件上一次保存时的时间戳,显示从 1970/01/01 00:00:00 GMT 到当前时间的毫秒数。 受限于底层文件系统约束,固定返回 0。
    lengthnumber文件的大小,单位为字节。 当 type 等于 dir 时,length 固定为 0。
    typestring文件的类型,可选值为: dir:目录;file:文件。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.list({
  uri: "internal://app/pic",
  success: function (data) {
    console.log(data.fileList);
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.get(OBJECT)

获取指定本地文件的信息,URI 请参考文件组织。

  • 参数

    参数名类型必填说明
    uristring文件的 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    recursiveboolean是否进行递归获取子目录文件列表,缺省为 false。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • success 返回值:

    参数名类型说明
    uristring文件的 uri。
    lengthnumber文件字节长。 当 type 等于 dir 时,length 固定为 0。
    lastModifiedTimenumber文件保存时的时间戳,从 1970/01/01 00:00:00 到当前时间的毫秒数。 受限于底层文件系统约束,固定返回 0。
    typestring文件类型,可选值为:dir:目录; file:文件。
    subFilesArray文件列表。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.get({
  uri: "internal://app/file",
  success: function (data) {
    console.log(data.uri);
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.delete(OBJECT)

删除本地文件,使用的 URI 参考文件组织。

  • 参数

    参数名类型必填说明
    uristring删除文件的 uri,不能是应用资源路径。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.delete({
  uri: "internal://app/my_file",
  success: function () {
    console.log("call delete success.");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.writeText(OBJECT)

写文本内容到指定文件。

  • 参数

    参数名类型必填说明
    uristring本地文件 uri,如果文件不存在会创建文件。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    textstring写入的字符串。
    encodingstring编码格式,默认为 UTF-8。 目前仅支持 UTF-8。
    appendboolean是否追加模式,默认为 false。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.writeText({
  uri: "internal://app/workspace/test.txt",
  text: "Text that just for test.",
  success: function () {
    console.log("call writeText success.");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.writeArrayBuffer(OBJECT)

写 Buffer 内容到指定文件。

  • 参数

    参数名类型必填说明
    uristring本地文件 uri,如果文件不存在会创建文件。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    bufferUint8Array写入的 Buffer。
    positionnumber文件开始写入数据的位置的偏移量,默认为 0。
    appendboolean是否追加模式,默认为 false。当设置为 true 时,position 参数无效。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.writeArrayBuffer({
  uri: "internal://cache/workspace/test",
  buffer: buffer, //buffer为Uint8Array类型
  success: function () {
    console.log("call writeArrayBuffer success.");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.readText(OBJECT)

从指定文件中读取文本内容。

  • 参数

    参数名类型必填说明
    uristring本地文件 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    encodingstring编码格式,缺省为 UTF-8。 目前仅支持 UTF-8。
    positionnumber读取的起始位置,默认值为文件的起始位置。
    lengthnumber读取的长度,默认值为 4096。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • success 返回值:

    参数名类型说明
    textstring读取到的文本内容。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
    302要读取的文件内容超过 4KB。
  • 示例

file.readText({
  uri: "internal://cache/workspace/text.txt",
  success: function (data) {
    console.log("call readText success: " + data.text);
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.readArrayBuffer(OBJECT)

从指定文件中读取 Buffer 内容。

  • 参数

    参数名类型必填说明
    uristring本地文件 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    positionnumber读取的起始位置,缺省为文件的起始位置。
    lengthnumber需要读取的长度,缺省则读取到文件结尾。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • success 返回值:

    参数名类型说明
    bufferUint8Array读取到的文件内容。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.readArrayBuffer({
  uri: "internal://app/workspace/test",
  position: 10,
  length: 200,
  success: function (data) {
    console.log("call readArrayBuffer success: " + data.buffer);
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.access(OBJECT)

判断指定文件或目录是否存在。

  • 参数

    参数名类型必填说明
    uristring目录或文件 uri。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.access({
  uri: "internal://app/test",
  success: function () {
    console.log("call access success.");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.mkdir(OBJECT)

创建指定目录。

  • 参数

    参数名类型必填说明
    uristring目录的 uri 路径。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号,同时创建目录时递归层次最多不超过 5 层。
    recursiveboolean是否递归创建该目录的上级目录,缺省为 false。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
  • 示例

file.mkdir({
  uri: "internal://share/test_directory",
  success: function () {
    console.log("call mkdir success.");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

file.rmdir(OBJECT)

删除指定目录。

  • 参数

    参数名类型必填说明
    uristring目录的 uri 路径。字符串最大长度为 128,且不能包含“"*+,:;<=>?[] | \x7F”等特殊符号。
    recursiveboolean是否递归删除子文件和子目录,缺省为 false。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • fail 返回错误代码:

    错误码说明
    202出现参数错误。
    300出现 I/O 错误。
    301文件或目录不存在。
  • 示例

file.rmdir({
  uri: "internal://app/test_directory",
  success: function () {
    console.log("call rmdir success.");
  },
  fail: function (data, code) {
    console.error("call fail callback fail, code: " + code + ", data: " + data);
  },
});

音频播放器

播放:boolean play();
暂停:boolean pause();
停止:boolean stop();

获取播放状态

getPlayState({ success: (data) => {}, complete: () => {} });
data 属性类型
statusstring"play","pause","stop"
srcstring音频文件路径
currentTimenumber当前播放时长
autoplayboolean是否自动播放
loopboolean是否循环播放
volumenumber音量
mutedboolean是否静音

设置/获取播放路径

audio.src = "internal://mass/A.mp3";

设置/获取播放位置

currentTime;

获取音乐播放时长

duration;

设置/获取播放器是否 loop 播放

loop;

设置/获取播放器的音量

volume;

设置/获取播放器静音状态

muted;

设置 onplay 回调

onplay;

设置 onpause 回调

onpause;

设置 onstop 回调

onstop;

设置 onloadeddata 回调

onloadeddata;

设置 onended 回调

onended;

设置 onerror 回调

onerror;

设置 ontimeupdate 回调

ontimeupdate (通知间隔 1S)

播放器 Demo

import audio from "@system.audio";

audio.onplay = () => {};
audio.onpause = () => {};
audio.onstop = () => {};
audio.onloadeddata = () => {};
audio.onended = () => {};
audio.onerror = () => {};
audio.ontimeupdate = () => {};

audio.src = "internal://mass/A.mp3";
audio.play();
audio.pause();
audio.stop();

弹窗 prompt

接口声明

{ "name": "system.prompt" }

导入模块

import prompt from '@system.prompt' 
// 或 
const prompt = require('@system.prompt')

接口定义

prompt.showToast(OBJECT)

显示 Toast 提示信息

参数
参数名类型必填说明
messageString显示的文本信息。
durationNumber显示持续时间,单位ms,默认值1500,建议区间:1500-10000。
示例:
prompt.showToast({
  message: 'Message Info',
  duration: 2000
})

系统能力

设备通信 interconnect

用于和搭配使用的手机 app 进行通信,收发手机 app 数据。 通信连接会自动建立,应用内不用关心连接的创建和销毁,但是可以注册回调函数来接收连接状态改变的信息,以便于进行相应处理,例如对用户进行提示。

获取手机端 APK 的安装情况的功能:

var conn_status = conn.getApkStatus();
if (conn_status == "CONNECTED") {
} else if (conn_status == "DISCONNECTED") {
} else if (conn_status == "UNINSTALLED") {
} else {
  //error
}

接口声明

{ "name": "system.interconnect" }

导入模块

import interconnect from '@system.interconnect'const interconnect = require('@system.interconnect')

interconnect.instance

获取连接对象,在 app 中以单例形式存在,后续的数据收发都是基于这个连接对象。

参数

无。

示例

let conn = interconnect.instance();

数据收发 api 说明

  • 发送数据 conn.send

conn.send({
data: {data:'需要发送的数据'},
success: ()=>{
  console.log(`handling success`)
},
fail: (data: {data, code})=> {
  console.log(`handling fail, errMsg = ${data.data}, errCode = ${data.code}`)
}
})
  • 接收数据 conn.onmessage

conn.onmessage = (data: {data}) => {
  console.log(`received message: ${data.data}`)
}
  • 连接打开回调 conn.onopen

conn.onopen = () => {
  console.log(`connection opened`);
};
  • 连接关闭回调 conn.onclose

conn.onclose = (data: {data, code}) => {
  console.log(`connection closed, reason = ${data.data}, code = ${data.code}`)
}
  • 连接出错回调 conn.onerror

conn.onerror = (data: {data, code})=> {
  console.log(`connection error, errMsg = ${data.data}, errCode = ${data.code}`)
}

网络状态

接口声明

{ "name": "system.network" }

导入模块

import network from '@system.network'const network = require('@system.network')

接口定义

network.subscribe(OBJECT)

取消监听网络连接状态

参数:

示例:

network.unsubscribe();

订阅

订阅蓝牙状态

network.subscribe({
  type: "BT",
  callback: (conn_status) => {
    if (conn_status) {
      //connection status
    } else {
      //disconnection status
    }
  },
});

订阅 WIFI 状态

network.subscribe({
  type: "WIFI",
  callback: (conn_status) => {
    if (conn_status) {
      //connection status
    } else {
      //disconnection status
    }
  },
});

取消订阅

取消蓝牙状态订阅: network.unsubscribe({type:'BT'});
取消WIFI状态订阅:network.unsubscribe({type:'WIFI'});

震动

接口声明

{ "name": "system.vibrator" }

导入模块

import vibrator from '@system.vibrator'const vibrator = require('@system.vibrator')

vibrator.vibrate(OBJECT)

触发震动

参数:

参数类型必填说明
modeString振动模式,"long"表示长振动,"short"表示短振动。默认为 long

示例:

vibrator.vibrate({
  mode: "long",
});

屏幕亮度

接口声明

{ "name": "system.brightness" }

导入模块

import brightness from '@system.brightness'const brightness = require('@system.brightness')

brightness.getValue(OBJECT)

获得当前屏幕亮度值

参数:

参数名类型必填说明
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

success 返回值:

参数值类型说明
valueInteger屏幕亮度,取值范围 0-255

示例:

brightness.getValue({
  success: function (data) {
    console.log(`handling success, value = ${data.value}`);
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`);
  },
});

brightness.setValue(OBJECT)

设置当前屏幕亮度值

参数:

参数名类型必填说明
valueInteger屏幕亮度,取值范围 0-255
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

示例:

brightness.setValue({
  value: 100,
  success: function () {
    console.log("handling success");
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`);
  },
});

brightness.getMode(OBJECT)

获得当前屏幕亮度模式

参数:

参数名类型必填说明
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

success 返回值:

参数值类型说明
modeInteger0 为手动调节屏幕亮度,1 为自动调节屏幕亮度

示例:

brightness.getMode({
  success: function (data) {
    console.log(`handling success, mode = ${data.mode}`);
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`);
  },
});

brightness.setMode(OBJECT)

设置当前屏幕亮度模式

参数:

参数名类型必填说明
modeInteger0 为手动调节屏幕亮度,1 为自动调节屏幕亮度
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

示例:

brightness.setMode({
  mode: 1,
  success: function () {
    console.log("handling success");
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`);
  },
});

brightness.setKeepScreenOn(OBJECT) 1060+

设置是否保持常亮状态

参数:

参数名类型必填说明
keepScreenOnBoolean是否保持屏幕常亮
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

示例:

brightness.setKeepScreenOn({
  keepScreenOn: true,
  success: function () {
    console.log("handling success");
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`);
  },
});

设备信息

导入模块

import device from "@system.device";

device.getInfo(OBJECT)

获取当前设备的信息。

  • 参数

    参数名类型必填说明
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
  • success 返回值:

    参数名类型说明
    brandstring品牌。
    manufacturerstring生产商。
    modelstring型号。
    productstring代号。
    languagestring系统语言。
    regionstring系统地区。
    windowWidthnumber可使用的窗口宽度。
    windowHeightnumber可使用的窗口高度。
    screenDensitynumber屏幕密度。
    screenShapestring屏幕形状。可取值: rect:方形屏;circle:圆形屏。
    IMEIstring设备识别码
    releaseType5+string版本发布类型,值为类型+版本号,如 Beta1。 类型可能值有:
    Canary:同一 apiVersion 下,canary 版本之间保持 API 兼容,beta 版本不对 canary 版本兼容。
    Beta:同一 apiVersion 下,beta 版本之间保持 API 兼容,release 版本不对 beta 版本兼容。
    Release:release 版本会保持 5 个 API 版本兼容。
    deviceType5+string设备类型,可能值有:
    tv:智慧屏
    wearable:智能穿戴
    liteWearable:轻量级智能穿戴
    smartVision:智能视觉设备
  • fail 返回错误代码:

    错误码说明
    200返回结果中存在无法获得的信息。
  • 示例

device.getInfo({
  success: function (data) {
    console.log(
      "Device information obtained successfully. Device brand:" + data.brand
    );
  },
  fail: function (data, code) {
    console.log(
      "Failed to obtain device information. Error code:" +
        code +
        "; Error information: " +
        data
    );
  },
});

运动健康

导入模块

import request from "@system.health";
var hr = getHr();

地理位置

导入模块

import geolocation from '@system.geolocation'const geolocation = require('@system.geolocation')

geolocation.getLocation(OBJECT)

获取地理位置

  • 参数:
参数名类型必填说明
timeoutLong设置超时时间,单位是 ms,默认值为 30000。在权限被系统拒绝或者定位设置不当的情况下,有可能永远不能返回结果,因而需要设置超时。超时后会使用 fail 回调
coordTypeString坐标系类型,可选值可通过 getSupportedCoordTypes 获取,默认为 wgs84
successFunction成功回调
failFunction失败回调,原因可能是用户拒绝
completeFunction执行结束后的回调
  • success返回值:
参数名类型说明
longitudeNumber经度
latitudeNumber纬度
accuracyNumber精确度
timeNumber时间
  • fail返回错误代码
错误码说明
201用户拒绝,获取定位权限失败
204超时返回
1000 1000+系统位置开关关闭
  • 示例:
geolocation.getLocation({
  success: function (data) {
    console.log(`handling success: longitude = ${data.longitude}, latitude = ${data.latitude}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

geolocation.subscribe(OBJECT)

监听地理位置。如果多次调用,仅最后一次调用生效

  • 参数:
参数名类型必填说明
reservedBoolean是否持久化订阅,默认为 false。机制:设置为 true,页面跳转,不会自动取消订阅,需手动取消订阅
coordTypeString坐标系类型,可选值可通过 getSupportedCoordTypes 获取,默认为 wgs84
callbackFunction每次位置信息发生变化,都会被回调
failFunction失败回调,原因可能是用户拒绝
  • callback返回值:
参数名类型说明
longitudeNumber经度
latitudeNumber纬度
accuracyNumber精确度
timeNumber时间
  • fail返回错误代码
错误码说明
201用户拒绝,获取定位权限失败
1000 1000+系统位置开关关闭
  • 示例:
geolocation.subscribe({
  callback: function (data) {
    console.log(`handling success: longitude = ${data.longitude}, latitude = ${data.latitude}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

geolocation.unsubscribe()

取消监听地理位置

  • 参数: 无

  • 示例:

geolocation.unsubscribe()

网络访问

上传下载

支持设备

表 1 API 的设备支持情况

API手机平板智慧屏智能穿戴
request.upload支持支持支持支持
request.download支持支持支持支持
request.onDownloadComplete支持支持支持支持

导入模块

import request from "@system.request";

获取未下载完成的 session count: request.getUnCompletedDownloadCnt();

示例:

var unCompletedSessionCnt = request.getUnCompletedDownloadCnt();

request.upload(OBJECT)

上传文件。

  • 参数

    参数名类型必填说明
    urlstring资源地址。
    headerObject请求头。
    methodstring请求方法:POST、PUT。缺省 POST。
    filesArray<File>待上传文件列表。请使用 multipart/form-data 进行提交。
    dataArray<RequestData>请求的表单数据。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。

表 2 File

参数名类型必填说明
filenamestringmultipart 提交时,请求头中的文件名。
namestringmultipart 提交时,表单项目的名称,缺省为 file。
uristring文件的本地存储路径(路径使用方式请参考存储目录定义)。
typestring文件的内容类型,默认根据文件名或路径的后缀获取。

表 3 RequestData

参数名类型必填说明
namestring表示 form 元素的名称。
valuestring表示 form 元素的值。

success 返回值:

参数名类型说明
codenumber服务器返回的状态码。
datastring服务器返回的内容。根据返回头内容中的 type 决定该值的类型。
headersObject服务器返回的返回头内容。
  • 示例
request.upload({
  url: "http://www.path.com",
  files: [
    {
      uri: "internal://cache/path/to/file.txt",
      name: "file",
      filename: "file.txt",
    },
  ],
  data: [
    {
      name: "name1",
      value: "value",
    },
  ],
  success: function (data) {
    console.log("upload success, code:" + data.code);
  },
  fail: function () {
    console.log("upload fail");
  },
});

request.download(OBJECT)

下载文件。

  • 参数

    参数名类型必填说明
    urlstring资源地址。
    headerObject请求头。
    descriptionstring资源地址的下载描述,默认为文件名称。
    filenamestring本次下载文件的名称。默认从本次请求或资源地址中获取。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。
    sharebooltrue : 下载请求会共存。false :下载请求会打断 share 类型的下载请求
    onDownLoadNotifyFunction下载进度通知

    success 返回值:

参数名类型说明
tokenstring表示下载的 token,获取下载状态的依据。

onDownLoadNotify 返回值:

参数名类型说明
resultnumber0 - 成功 (其它 - 失败)
percentnumber0 ~ 100 (下载进度)

fail 返回错误代码:

错误码说明
400表示下载任务失败。
  • 示例
request.download({
  url: "http://www.path.com",
  success: function (data) {
    console.log("call success callback success: " + data.token);
  },
  fail: function (data, code) {
    console.log("handling fail");
  },
});

request.onDownloadComplete(OBJECT)

获取下载任务状态。

  • 参数

    参数名类型必填说明
    tokenstringdownload 接口返回的结果 token。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。

success 返回值:

参数名类型说明
uristring表示下载文件的 uri。
percentnumber0 ~ 100 (下载进度)

fail 返回错误代码:

错误码说明
400表示下载任务失败。
401表示不存在该下载任务。

示例

request.onDownloadComplete({
  token: "token-index",
  success: function (data) {
    console.log("download success, uri:" + data.uri);
  },
  fail: function (data, code) {
    console.log("download fail");
  },
});

数据请求

支持设备

表 1 API 的设备支持情况

API智能穿戴
fetch.fetch支持

导入模块

import fetch from "@system.fetch";

fetch.fetch(OBJECT)

通过网络获取数据。

  • 参数

    参数名类型必填说明
    urlstring资源地址。
    datastring | Object请求的参数,可选类型是字符串或者 json 对象。
    headerObject设置请求的 header。
    methodstring请求方法默认为 GET,可选值为:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。
    responseTypestring默认会根据服务器返回 header 中的 Content-Type 确定返回类型,支持文本和 json 格式。详见 success 返回值。
    successFunction接口调用成功的回调函数。
    failFunction接口调用失败的回调函数。
    completeFunction接口调用结束的回调函数。

表 2 data 与 Content-Type 关系

dataContent-Type说明
string不设置Content-Type 默认为 text/plain,data 值作为请求的 body。
string任意 Typedata 值作为请求的 body。
Object不设置Content-Type 默认为 application/x-www-form-urlencoded,data 按照资源地址规则进行 encode 拼接作为请求的 body。
Objectapplication/x-www-form-urlencodeddata 按照资源地址规则进行 encode 拼接作为请求的 body。

success 返回值:

参数名类型说明
codenumber表示服务器的状态 code。
datastring | Object返回数据类型由 responseType 确定,详见 responseType 与 success 中 data 关系。
headersObject表示服务器 response 的所有 header。

表 3 responseType 与 success 中 data 关系

responseTypedata说明
string服务器返回的 header 中的 type 如果是 text/*或 application/json、application/javascript、application/xml,值为文本内容。
textstring返回文本内容。
jsonObject返回 json 格式的对象。
  • 示例
import fetch from "@system.fetch";

export default {
  data: {
    responseData: "NA",
    url: "test_url",
  },
  fetch: function () {
    var that = this;
    fetch.fetch({
      url: that.url,
      success: function (response) {
        console.info("fetch success");
        that.responseData = JSON.stringify(response);
      },
      fail: function () {
        console.info("fetch fail");
      },
    });
  },
};

默认支持 https,如果要支持 http,需要在 config.json 里增加 network 标签,属性标识 "usesCleartext": true。即:

{
  "deviceConfig": {
    "default": {
      "network": {
        "usesCleartext": true
      }
      ...
    }
  }
  ...
}

录音

导入模块

import record from '@system.record'const record = require('@system.record')

接口定义

record.start(OBJECT)

开始录音

· 参数:

参数名类型必填说明
durationNumber录音时长,单位为ms。如果duration为有效值将在达到指定值时停止录音
sampleRateNumber采样率。不同的音频格式所支持的采样率范围不同。对于aac格式,默认设置为8000,建议使用 8000/16000/44100
numberOfChannelsNumber录音通道数,有效值 1/2
encodeBitRateNumber编码码率。编码码率的取值与采样率和音频格式有关。
formatString音频格式,有效值 ogg/3gpp/amr_nb/aac/mp3。缺省为ogg
file_pathString用户指定的录音文件路径,internal://app/record.mp3
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

· success返回值:

参数名类型说明
uriString录音文件的存储路径,在应用的缓存目录中

· fail返回错误代码

错误码说明
201用户拒绝授权,获取录音权限失败

· 示例:

record.start({
  duration: 10000,
  sampleRate: 8000,
  numberOfChannels: 1,
  encodeBitRate: 16000,
  format: 'ogg',
  success: function (data) {
    console.log(`handling success: ${data.uri}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

record.pause()

暂停录音

record.resume()

恢复录音

record.getDuration()

获取录音时长

record.stop(OBJECT)

停止录音。

· 参数: 无

· 示例:

record.stop()

其他

密码算法

接口声明

{ "name": "system.cipher" }

导入模块

import cipher from '@system.cipher'const cipher = require('@system.cipher')

cipher.rsa(OBJECT)

RSA 加解密。不支持分段加密,内容超长会出错

参数:

参数名类型必填说明
actionString加解密类型,可选值:encrypt:加密,decrypt:解密,sign:数字签名
textString待加密或解密的文本内容。待加密的文本内容应该是一段普通文本,长度不能超过 keySize / 8 - 66,其中 keySize 是秘钥的长度(例如秘钥长度为 1024 时,text 不能超过 62 个字节)。待解密的文本内容应该是经过 base64 编码的一段二进制值。base64 编码使用默认风格,下同
keyString加密或解密使用到的 RSA 密钥,经过 base64 编码后生成的字符串。加密时 key 为公钥,解密时 key 为私钥
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

success 返回值:

参数名类型说明
textString经过加密或解密后生成的文本内容。加密后内容是经过 base64 编码的一段二进制值,解密后内容是一段普通文本。如果解密后的内容不能转化为 utf-8 字符串会出错

fail 返回错误代码

错误码说明
202输入参数错误。

示例:

//加密
cipher.rsa({
  action: "encrypt",
  //待加密的文本内容
  text: "hello",
  //base64编码后的加密公钥
  key:
    "-----BEGIN RSA PRIVATE KEY-----\n" +
    "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDc7GR2MrfAoefES+wrs1ns2afT\n" +
    "eJXSfIkEHfPXG9fVFjaws1ho4KcZfsxlA0+SXvc83f2SVGCuzULmM2lxxRCtcUN/\n" +
    "h7SoaYEeluhqFimL2AEjfSwINHCLqObJkcjCfoZpE1JCehPiDOJsyT50Auc08h/4\n" +
    "jHQfanyC1nc62LqUCQIDAQAB\n" +
    "-----END RSA PRIVATE KEY-----",
  success: function(data) {
    console.log(`handling success: ${data.text}`);
  },
  fail: function(data, code) {
    console.log(`### cipher.rsa fail ### ${code}: ${data}`);
  },
});

//解密:
cipher.rsa({
  action: "decrypt",
  //待解密的内容,是base64编码后的一段二进制值,解密后是文本内容“hello”
  text:
    "CUg3tTxTIdpCfreIxIBdws3uhd5qXLwcrVl3XDnQzZFVHyjVVCDHS16rjopaZ4C5xU2Tc8mSDzt7\n" +
    "gp9vBfSwi7bMtSUvXG18DlncsKJFDkJpS5t0PkpS9YrJXrY80Gpe+ME6+6dN9bjgqMljbitDdBRf\n" +
    "S/ZWNI4Q8Q0suNjNkGU=",

  //base64编码后的解密私钥
  key:
    "-----BEGIN RSA PUBLIC KEY-----\n" +
    "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANzsZHYyt8Ch58RL\n" +
    "7CuzWezZp9N4ldJ8iQQd89cb19UWNrCzWGjgpxl+zGUDT5Je9zzd/ZJUYK7NQuYz\n" +
    "aXHFEK1xQ3+HtKhpgR6W6GoWKYvYASN9LAg0cIuo5smRyMJ+hmkTUkJ6E+IM4mzJ\n" +
    "PnQC5zTyH/iMdB9qfILWdzrYupQJAgMBAAECgYEAkibhH0DWR13U0gvYJeD08Lfd\n" +
    "Sw1PMHyquEqIcho9Yv7bF3LOXjOg2EEGPx09mvuwXFgP1Kp1e67XPytr6pQQPzK7\n" +
    "XAPcLPx80R/ZjZs8vNFndDOd1HgD3vSVmYQarNzmKi72tOUWMPevsaFXPHo6Xx3X\n" +
    "8x0wYb7XuBsQguRctTECQQD7GWX3JUiyo562iVrpTDPOXsrUxmzCrgz2OZildxMd\n" +
    "Pp/PkyDrx7mEXTpk4K/XnQJ3GpJNi2iDSxDuPSAeJ/aPAkEA4Tw4+1Z43S/xH3C3\n" +
    "nfulYBNyB4si6KEUuC0krcC1pDJ21Gd12efKo5VF8SaJI1ZUQOzguV+dqNsB/JUY\n" +
    "OFfX5wJAB1dKv9r7MR3Peg6x9bggm5vx2h6i914XSuuMJupASM6X5X2rrLj+F3yS\n" +
    "RHi9K1SPyeOg+1tkBtKfABgRZFBOyQJAbuTivUSe73AqTKuHjB4ZF0ubqgEkJ9sf\n" +
    "Q2rekzm9dOFvxjZGPQo1qALX09qATMi1ZN376ukby8ZAnSafLSZ64wJBAM2V37go\n" +
    "Sj44HF76ksRow8gecuQm48NCTGAGTicXg8riKog2GC9y8pMNHAezoR9wXJF7kk+k\n" +
    "lz5cHyoMZ9mcd30=\n"
    "-----END RSA PUBLIC KEY-----",
  success: function(data) {
    console.log(`handling success: ${data.text}`);
  },
  fail: function(data, code) {
    console.log(`### cipher.rsa fail ### ${code}: ${data}`);
  },
});

cipher.aes(OBJECT) 1060+

AES 加解密。支持分段加密

参数:

参数名类型必填说明
actionString加解密类型,两个可选值:encrypt:加密,decrypt:解密
textString待加密或解密的文本内容。待加密的文本内容应该是一段普通文本。待解密的文本内容应该是经过 base64 编码的一段二进制值。base64 编码使用默认风格,下同
keyString加密或解密使用到的密钥,经过 base64 编码后生成的字符串。
transformationStringAES 算法的加密模式和填充项,默认为"AES/CBC/PKCS5Padding"
ivStringAES 加解密的初始向量,经过 base64 编码后的字符串,默认值为 key 值
ivOffsetIntegerAES 加解密的初始向量偏移,默认值为 0
ivLenIntegerAES 加解密的初始向量字节长度,默认值为 16
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

success 返回值:

参数名类型说明
textString经过加密或解密后生成的文本内容。加密后内容是经过 base64 编码的一段二进制值,解密后内容是一段普通文本。如果解密后的内容不能转化为 utf-8 字符串会出错(CODE:200)

fail 返回错误代码

错误码说明
200一般性错误,在加解密出错时会返回此错误
202参数错误

示例:

//加密
cipher.aes({
  action: "encrypt",
  //待加密的文本内容
  text: "hello",
  //base64编码后的密钥
  key: "NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=",
  transformation: "AES/CBC/PKCS5Padding",
  ivOffset: 0,
  ivLen: 16,
  success: (data) => {
    console.log(`handling success: ${data.text}`);
  },
  fail: (data, code) => {
    console.log(`### cipher.aes fail ### ${code}: ${data}`);
  },
});

//解密:
cipher.aes({
  action: "decrypt",
  //待解密的内容,是base64编码后的一段二进制值
  text:
    "CUg3tTxTIdpCfreIxIBdws3uhd5qXLwcrVl3XDnQzZFVHyjVVCDHS16rjopaZ4C5xU2Tc8mSDzt7\n" +
    "gp9vBfSwi7bMtSUvXG18DlncsKJFDkJpS5t0PkpS9YrJXrY80Gpe+ME6+6dN9bjgqMljbitDdBRf\n" +
    "S/ZWNI4Q8Q0suNjNkGU=",
  //base64编码后的密钥
  key: "NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=",
  transformation: "AES/CBC/PKCS5Padding",
  ivOffset: 0,
  ivLen: 16,
  success: (data) => {
    this.dealTxt = data.text;
  },
  fail: (data, code) => {
    prompt.showToast({
      message: "解密失败, code=" + code + ":" + data,
    });
  },
});

cipher base64接口

cipher.base64Encode(text);
var text = cipher.base64Encode("NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=");
cipher.base64Decode(text);
var uint8Array = cipher.base64Decode("NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=");

cipher md5接口

cipher.md5(text);
var hex_str = cipher.md5(text);
cipher.md5Base64(text);
var base64_str = cipher.md5Base64(text);

cipher HexEncode接口

cipher.HexEncode(buffer);
参数名类型说明
bufferUint8Arraybuffer
var text = cipher.HexEncode(buffer);
cipher.HexDecode(hex_str);
var uint8Array = cipher.HexDecode(buffer);
Last Updated:
Contributors: 550, lvzongchao, wangze