Skip to main content

APIs (v0.0.1)

由开源书源定义的一组特殊API, 由宿主实现.

info

公开有关环境信息的对象, 它具有以下属性:

  • version: String

    接口版本号(当前版本号0.0.1)

  • platform: Object

    • os: String

      系统

    • osVersion: String

      系统版本

console.log(info.version); // 输出: 0.0.1
console.log(info.platform.os); // 输出: ios
console.log(info.platform.osVersion); // 输出: Version 16.4 (Build 20E247)

Date.parseWithFormat(text, format)

日期解析

  • text: String

    需要解析的文本

  • format: String

    日期格式

var value = Date.parseWithFormat('2003-12-20 10:25', 'yyyy-MM-dd HH:mm');
console.log(value); // 输出: 2003-12-20 10:25:00.000

UserAgents

用户代理

  • android: String
  • iphone: String
  • ipad: String
  • macos: String
  • windows: String
  • linux: String
console.log(UserAgents.android); // 输出: Mozilla/5.0 (Android 12; Mobile; rv:97.0) Gecko/97.0 Firefox/97.0
console.log(UserAgents.iphone); // 输出: Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
console.log(UserAgents.ipad); // 输出: Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
console.log(UserAgents.macos); // 输出: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_14; rv:97.0) Gecko/20110101 Firefox/97.0
console.log(UserAgents.windows); // 输出: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
console.log(UserAgents.linux); // 输出: Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0

Clipboard

剪切板

  • set(text)

    设置剪切板内容

  • get(): String

    获取剪切板内容

注意: 仅支持异步请求.

await Clipboard.set('剪切板内容');    // 设置剪切板内容
console.log(await Clipboard.get()); // 输出: 剪切板内容

Storage

存储

  • put(key, value)

    保存记录

  • get(key)

    获取记录

  • delete(key)

    删除记录

  • keys()

    获取所有 keys

  • exists(key)

    判断记录是否存在

注意: 仅支持异步请求.

await Storage.put('a', 0);
await Storage.put('b', 1);
await Storage.put('c', 2);

console.log(await Storage.get('a')); // 输出: 0
console.log(await Storage.delete('a')); // 输出: true
console.log(await Storage.delete('d')); // 输出: false
console.log(await Storage.keys()); // 输出: [b, c]
console.log(await Storage.exists('a')); // 输出: false
console.log(await Storage.exists('b')); // 输出: true

fetch(url, options)

发起网络请求

  • url: String

    请求地址

  • options: Object

    • method?: String

      请求方式: GET POST HEAD PUT DELETE PATCH OPTIONS TRACE CONNECT

      默认: GET

    • headers?: Object

      请求头, 例如: { 'name1': 'value1', 'name2': 'value2' }

    • responseType?: String

      返回类型:

      • text (默认值)

        文本类型

      • bytes

        二进制类型

    • timeout?: Number

      超时时间, 单位: 毫秒

    • data?: String | Map | Uint8Array

      与请求一起发送的数据,通常用于 POSTPUT 请求。

响应对象具有以下属性:

  • status: Number

    请求的响应状态

  • headers: Object

    响应头

  • data: String | Uint8Array | null

    响应数据. 具体类型取决于 responseType 的值

  • finalUrl: String

    重定向后的最终 URL

注意: 仅支持异步请求.

chardet(data)

字符集检测

  • data: Uint8Array
var arr = new Uint8Array([229, 188, 128, 230, 186, 144, 228, 185, 166, 230, 186, 144]);
console.log(chardet(arr)); // 输出: UTF-8

Codec

编解码器

  • encode(text, charset) Uint8Array

    编码

  • decode(text, charset) String

    解码

  • encodeURIComponent(text, charset) String

    URL 编码

  • decodeURIComponent(text, charset) String

    URL 解码

var result = await Codec.encode('https://baidu.com/s?wd=开源书源', 'gbk');
console.log(result); // 输出: [104, 116, 116, 112, 115, 58, 47, 47, 98, 97, 105, 100, 117, 46, 99, 111, 109, 47, 115, 63, 119, 100, 61, 191, 170, 212, 180, 202, 233, 212, 180]
console.log(await Codec.decode(result, 'gbk')); // 输出: https://baidu.com/s?wd=开源书源

var result = await Codec.encodeURIComponent('https://baidu.com/s?wd=开源书源', 'gbk');
console.log(result); // 输出: https%3A%2F%2Fbaidu.com%2Fs%3Fwd%3D%BF%AA%D4%B4%CA%E9%D4%B4
console.log(await Codec.decodeURIComponent(result, 'gbk')); // 输出: https://baidu.com/s?wd=开源书源

注意: 仅支持异步请求.

Document

用于解析网页.

Example:

new Document(text)

querySelector()

参考: https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelector

querySelectorAll()

参考: https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelectorAll

queryXpath()

类似 querySelectorAll, 但是使用 xpath 语言.

text

获取当前节点下的文本

Example:

document.querySelector('#info > h1').text

ownText

仅获取当前节点的文本

Example:

document.querySelector('#info > h1').ownText

outerHtml

参考: https://developer.mozilla.org/zh-CN/docs/Web/API/Element/outerHTML

Example:

document.querySelector('#info > h1').outerHtml

innerHtml

参考: https://developer.mozilla.org/zh-CN/docs/Web/API/Element/innerHTML

Example:

document.querySelector('#info > h1').innerHtml

Uri

Example:

Uri.parse('https://example.com');

toString()

var uri = Uri.parse('https://example.com');
console.log(uri.toString()); // 输出: https://example.com

replace()

Example:

var uri = Uri.parse('https://example.com').replace({
host: 'example2.com',
path: 'p',
});
console.log(uri.toString()); // 输出: https://example2.com/p

resolve()

var uri = Uri.parse('https://example.com/p').resolve('p2/icon.png');
console.log(uri.toString()); // 输出: https://example.com/p2/icon.png

scheme

var uri = Uri.parse('https://example.com');
console.log(uri.scheme); // 输出: https

authority

var uri = Uri.parse('https://example.com');
console.log(uri.authority); // 输出: example.com

userInfo

var uri = Uri.parse('https://example.com');
console.log(uri.userInfo); // 输出:

host

var uri = Uri.parse('https://example.com');
console.log(uri.host); // 输出: example.com

port

var uri = Uri.parse('https://example.com');
console.log(uri.port); // 输出: 443

path

var uri = Uri.parse('https://example.com/p');
console.log(uri.path); // 输出: /p

pathSegments

var uri = Uri.parse('https://example.com/p/p2/p3');
console.log(uri.pathSegments); // 输出: ["p", "p2", "p3"]

query

var uri = Uri.parse('https://example.com/p?s=keyword');
console.log(uri.query); // 输出: s=keyword

queryParameters

var uri = Uri.parse('https://example.com/p?s=keyword');
console.log(uri.queryParameters); // 输出: {"s": "keyword"}

queryParametersAll

var uri = Uri.parse('https://example.com/p?s=keyword');
console.log(uri.queryParametersAll); // 输出: {"s": ["keyword"]}

fragment

var uri = Uri.parse('https://example.com/p?s=keyword#uris');
console.log(uri.fragment); // 输出: uris

UI

调用宿主页面

  • toast(text)

    提示信息

  • alert(text)

    提示对话框

  • confirm(text, single, options)

    确认对话框

  • prompt(text)

    输入对话框

  • configure(inputs)

    配置页面