只读core基础库版本号,如 2608200
只读core基础库版本名,如 1.260820.0
只读in是否运行在 APP 环境中
只读is是否运行在 Android APP 环境中
只读is是否运行在 HarmonyOS APP 环境中
只读is是否运行在 iOS APP 环境中
只读is是否运行在浏览器环境中
只读versionAPP 版本号,如 123
只读versionAPP 版本名,如 1.2.3
取消(中断)网络任务
let downloadTask;
await ymx.downloadFile({
url: 'https://www.yimenapp.com/doc/doc.pdf',
filePath: 'fs://file/my/doc.pdf',
onNetworkTaskCreated(task) {
console.log('task', task);
downloadTask = task;
},
async onDataReceiveProgress(progress) {
console.log(`共需接收 ${progress.totalSize} Bytes,已接收 ${progress.receiveSize} Bytes`);
//下载超过 30KB 就取消,仅作为接口调用示例展示。
if (downloadTask && (progress.receiveSize > 30 * 1024)) {
await ymx.abortNetworkTask(downloadTask);
}
}
});
同步方法,将 ArrayBuffer 对象转成 Base64 字符串
同步方法,将 Base64 字符串转成 ArrayBuffer 对象
是否可以处理指定的 uri,主要用于检测是否已安装对应的 App。
launch 接口不同,如 launch weixin:// 不要求注册 weixin scheme,只要安装了微信客户端即可拉起。true 可以处理 url, false 不可以
拉起手机通讯录,选择联系人。
拍摄或从手机相册中选择图片或视频
await ymx.chooseMedia({
// 相册
sourceType: ['album'],
// 选一个
count: 1,
// 图片
mediaType: ['image']
});
await ymx.chooseMedia({
// 拍照
sourceType: ['camera'],
// 后置摄像头
camera: 'back',
mediaType: ['image']
});
await ymx.chooseMedia({
// 拍照
sourceType: ['camera'],
// 前置摄像头
camera: 'front',
// 视频
mediaType: ['video']
});
清空布局规则
关闭当前窗口
可选result: any
需要返回给父窗口的数据
下载文件
await ymx.downloadFile({
url: 'https://www.yimenapp.com/doc/doc.pdf'
});
//下载保存到指定的文件路径
await ymx.downloadFile({
url: 'https://www.yimenapp.com/doc/doc.pdf',
filePath: 'fs://file/my/doc.pdf'
});
//本地临时图片文件路径
const imageFile = 'fs://temp/img.jpg';
try {
//下载图片
await ymx.downloadFile({
url: 'https://i.yimenyun.net/sys/2.jpg',
filePath: imageFile,
onNetworkTaskCreated(task) {
console.log('download task', task);
},
onDataReceiveProgress: (progress) => {
console.log(`总共 ${progress.totalSize} Bytes,已下载 ${progress.receiveSize} Bytes`);
}
});
alert('已下载,即将保存到相册。');
//保存到相册
await ymx.saveImageToPhotosAlbum({
filePath: imageFile
});
alert('已保存到相册');
} catch (err) {
alert(err.message);
} finally {
//删除临时文件
const fs = ymx.getFileSystemManager();
if (await fs.exist({ path: imageFile })) {
await fs.remove({ path: imageFile });
}
}
获取角标
获取设备电池信息
获取系统剪贴板的内容
同步获取基于 SQLite 的关系型数据库管理器
获取应用已申明的权限清单
同步获取文件管理器
获取是否保持常亮状态
获取应用的启动参数
获取当前布局选项
获取基于 URL 正则匹配模式的 UI 布局规则列表
按顺序匹配 url,使用成功匹配项的 layout 设置,如果全部匹配失败则使用最后一项配置。
获取导航栏(底部虚拟按键区)
获取屏幕亮度
获取屏幕方向
获取应用签名信息
获取状态栏
异步获取当前 storage 的相关信息
获取主题
获取标题栏
获取通知允许状态
拉起第三方应用,不要求在 query schemes 中注册 url scheme,只要安装了对应应用即可拉起。
ymx.launch({
// 使用外部统浏览器(一般为系统默认浏览器)打开网页
uri: 'https://xw.qq.com/'
}).then(() => {
console.log('成功');
}).catch((e: ESObject) => {
alert(`失败 ${JSON.stringify(e)}`);
});
当用户确认隐私协议时触发,如果用户已确认隐私协议则立即触发监听器。
isAgreed 是否同意了协议
在新窗口中打开链接
打开通知设置
打开权限设置界面,手动授权。
删除布局规则
从 0 开始的序号
网络请求
//POST
await ymx.request({
url: 'https://www.yimenapp.com/doc/echo2',
method: 'POST',
data: {
key1: 'value 1',
hello: '世界'
},
onNetworkTaskCreated(task) {
console.log('request task', task);
},
onReceiveResponseHeaders: (headers) => {
console.log('服务器响应头', headers);
},
onDataSendProgress: (progress) => {
console.log(`共需发送 ${progress.totalSize} Bytes,已发送 ${progress.sendSize} Bytes`);
},
onDataReceiveProgress: (progress) => {
console.log(`共需接收 ${progress.totalSize} Bytes,已接收 ${progress.receiveSize} Bytes`);
}
});
//GET
await ymx.request({
url: 'https://www.yimenapp.com/doc/echo2',
method: 'GET'
});
请求允许通知
同步方法,构建插件 js API 接口实例。
此接口返回 object 类型,为获得接口类型验证和智能提示,请按如下操作:
npm install --save-dev @ymxjs/ymx-wechat
const wechat = ymx.requirePlugin('ymx-wechat') as YmxWechat;
// 至此,调用 wechat 下的接口即可获得开发环境类型验证和智能提示
// wechat.login...
插件 ID
保存图片到系统相册
//本地临时文件路径
const localFile = 'fs://temp/img.jpg';
try {
//下载图片
await ymx.downloadFile({
url: 'https://i.yimenyun.net/sys/2.jpg',
filePath: localFile
});
alert('已下载,即将保存到相册。');
//保存到相册
await ymx.saveImageToPhotosAlbum({
filePath: localFile
});
alert('已保存到相册');
} catch (err) {
alert(err.message);
} finally {
//删除临时文件
const fs = ymx.getFileSystemManager();
if (await fs.exist({ path: localFile })) {
await fs.remove({ path: localFile });
}
}
保存视频到系统相册
//本地临时文件路径
const localFile = 'fs://temp/video.mp4';
try {
//下载视频
await ymx.downloadFile({
url: 'http://cdn.myapp.ltd/sys/sunflower.mp4',
filePath: localFile
});
alert('已下载,即将保存到相册。');
//保存到相册
await ymx.saveVideoToPhotosAlbum({
filePath: localFile
});
alert('已保存到相册');
} catch (err) {
alert(err.message);
} finally {
//删除临时文件
const fs = ymx.getFileSystemManager();
if (await fs.exist({ path: localFile })) {
await fs.remove({ path: localFile });
}
}
将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
开始监听加速计数据
开始监听陀螺仪数据
系统分享链接、图片、视频、文件、文字等内容。
//链接
await ymx.systemShare({
title: 'APP 打包',
description: '信赖之选',
thumb: 'https://i.cdn.yimenapp.com/sys/logo.png',
content: {
link: 'https://www.ymxapp.com'
}
});
//文本
await ymx.systemShare({
title: '文本标题',
content: {
text: 'hello 世界'
}
});
//图片链接
await ymx.systemShare({
title: '图片标题',
content: {
imageUrl: 'https://i.yimenyun.net/sys/1.jpg'
}
});
const image = await ymx.downloadFile({
url: 'https://i.yimenyun.net/sys/1.jpg'
});
//本地图片
await ymx.systemShare({
title: '图片标题',
content: {
imageFilePath: image.tempFilePath
}
});
//视频链接
await ymx.systemShare({
title: '视频标题',
content: {
videoUrl: 'https://cdn.myapp.ltd/sys/sunflower.mp4'
}
});
const video = await ymx.downloadFile({
url: 'https://cdn.myapp.ltd/sys/sunflower.mp4'
});
//本地视频
await ymx.systemShare({
title: '视频标题',
content: {
videoFilePath: video.tempFilePath
}
});
//文件链接
await ymx.systemShare({
title: '文件标题',
content: {
fileUrl: 'https://www.yimenapp.com/doc/doc.pdf'
}
});
const file = await ymx.downloadFile({
url: 'https://www.yimenapp.com/doc/doc.pdf'
});
//本地文件
await ymx.systemShare({
title: '文件标题',
content: {
filePath: file.tempFilePath
}
});
上传文件
//相册选图 -> 压缩 -> 上传
try {
//从相册选图
const choose = await ymx.chooseMedia({
sourceType: ['album'],
mediaType: ['image'],
count: 1
});
const imageFile = choose.tempFiles[0]?.tempFilePath;
if (imageFile) {
//可直接上传相册原始图片
//await ymx.uploadFile({
// url: 'https://www.yimenapp.com/doc/echo2',
// filePath: imageFile
//});
const compressedImage = 'fs://temp/file-to-upload.jpg';
//压缩图片
await ymx.compressImage({
src: imageFile,
compressedWidth: 720,
quality: 85,
filePath: compressedImage
});
//上传图片
const res = await ymx.uploadFile({
url: 'https://www.yimenapp.com/doc/echo2',
filePath: compressedImage,
onNetworkTaskCreated(task) {
console.log('upload task', task);
},
onDataSendProgress: (progress) => {
console.log(`总共 ${progress.totalSize} Bytes,已上传 ${progress.sendSize} Bytes`);
}
});
alert(`已上传,服务器返回字符串:\n${res.data}`)
}
} catch (err) {
alert(`失败 ${err.message}`)
}
//上传 fs:// 本地文件
await ymx.uploadFile({
url: 'https://www.yimenapp.com/doc/echo2',
filePath: 'fs://file/my_dir/doc.pdf'
});
ymx Core