yiyun-app-sdk

1.3.7 • Public • Published

子应用API 介绍

通过script方式引入

文件地址:http://dl-mobileres.effio.cn/yiyun.min.js

<script src="./yiyun.min.js"></script>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./yiyun.min.js"></script>
</head>
<body>
 ...
<script>
        YiYun.onLoad(() => {
            config = YiYun.getConfig();
            result.textContent = `config: ${JSON.stringify(config)}`;
        });

        YiYun.onBack(() => {
            result.textContent = `回退按钮已触发 ${new Date()}`
        });

        document.getElementById('openUrl').onclick = async function openUrl() {
            YiYun.openUrl('https://www.douban.com');
        };

        document.getElementById('closeApp').onclick = function closeApp() {
            YiYun.closeApp();
        };
        ...
    </script>
</body>
</html>

通过npm安装

npm install yiyun-app-sdk

获取登陆 Authorization 等参数

import {onLoad, getConfig} from 'yiyun-app-sdk'

onLoad(() => {
    let config = getConfig();
})

只有在onLoad的回调被调用之后,getConfig()才会返回值。

config 为以下格式

{
    authToken, // 字符串,登陆 Authorization 值
    userTypes, // 字符串数组,原来的jurisdictions值按逗号分割
    route, // 页面所需要处理的路由
    memberId, // 字符串,用户在当前企业下的成员id
    organizationId, // 字符串,当前企业的id,
    memberToken, // 字符串,成员的token
    qrCodeParams, // 字符串对象,相关二维码事件跳转进来带的参数,
    priceLevel, // 应用的版本
}

获取用户信息

import {getUserInfo} from 'yiyun-app-sdk'

let userInfo = await getUserInfo();

userInfo: {
        id: '', // userId
        name: '', // 昵称
        profilePicture: '', // 头像
        phone: '' //手机号
    }

扫描二维码

import {scanBarcode} from 'yiyun-app-sdk'

try {
    let barcode = await scanBarcode();
} catch (err) {
    if (err.name === 'AbortError') {
        // 用户点了取消按钮
    }
    // 其他异常
}

识别平台二维码

调用

import {scanPlatformBarcode} from 'yiyun-app-sdk'

try {
    let res = await scanPlatformBarcode();
} catch (err) {
    if (err.name === 'AbortError') {
        // 用户点了取消按钮
    }
    // 其他异常:
	{
		errCode: 1004,
		message: '',
		qrCode: ''
	}
}

返回结果

旧版:
{
    name: '',
    key1(事件自定义参数名): value1,
    key2(事件自定义参数名): value2,
    ...
}

新版:
{
    args: {
        key1: value,
        key2: value
    },
    version: '2.17.0'
}
key格式: {appId}.{category}.{key}   appId在开放平台应用列表查看,category和key由APP定义

通用异常说明

参数名 参数类型 说明
name String AbortError: 用户取消了操作

业务异常说明

参数名 参数类型 说明
errCode int 错误码:1001、1002、1003、1004、 1005、1006、1007、1008、1009、1010、1011
message string 错误说明。1001:该二维码未绑定相关事件 1002:该二维码暂无当前应用的相关事件 1003: 二维码已作废 1004: 二维码已过期 1005: 二维码不存在 1006:网络错误 1007:获取平台二维码失败 1008:未开启照相机权限 1009:非当前企业的二维码 1010: 该二维码已被禁用,无法解析 1011: 你暂无权限查看该码
qrCode string 二维码内容

监听安卓返回按钮触发

import {onBack} from 'yiyun-app-sdk'

onBack(() => {
    // 安卓按钮已经点击
})

GPS 定位

import {getCurrentPosition} from 'yiyun-app-sdk'

try {
    let pos = await getCurrentPosition();
    // pos 的结构为 {latitude, longitude}
} catch (err) {
    // 获取定位失败
}

录音

import {startRecordAudio, stopRecordAudio} from 'yiyun-app-sdk'

try {
    await startRecordAudio(); // 开始录音
} catch (err) {
    // 录音失败
}

try {
    let data = await stopRecordAudio(); // 结束录音
    // data 为录音的data url
} catch (err) {
    // 结束录音失败
}

注意:开始录音后再开始录音,或者结束录音后再结束录音,都会抛异常。

在原生浏览器打开 URL

import {openUrl} from 'yiyun-app-sdk'

openUrl('https://www.douban.com')

图片预览

import {previewImage} from 'yiyun-app-sdk'

previewImage({
	initialIndex: 0,
    imageList: ['https://dl-todo.tsescloud.com/753700ec-b3c8-4b70-a238-fa0f920ab8e4/3sdR44345FD.jpg', 'https://dl-todo.tsescloud.com/753700ec-b3c8-4b70-a238-fa0f920ab8e4/3sdR4tR98tP.jpg'],
})

关闭应用

import {closeApp} from 'yiyun-app-sdk'

closeApp()

文件预览

import {previewFile} from 'yiyun-app-sdk'

previewFile(url)

注意:暂只支持pdf,txt,doc,docx,xls,xlsx,ppt,pptx. 安卓在第一次打开文件时,可能需要较长时间

用例

具体用法见exampleFor…….html

远程 debug

打开子应用后

安卓可以在 chrome 中打开 chrome://inspect/ 打开对应页面的调试工具 iOS 可以直接在 safari 的开发菜单打开页面对应的调试工具

区域选择器

引入

import {openAreaSelector} from 'yiyun-app-sdk'

接口参数

参数名 参数类型 说明 其他
isOnly bool true表示单选,false表示多选(必传)
disable array 禁用区域的id列表(可选)
selected array 已选区域的id列表(可选)

let result = await openAreaSelector({isOnly: false, selected: ['id'], disable: ['id']});

设备选择器

引入

import {openDeviceSelector} from 'yiyun-app-sdk'

接口参数

参数名 参数类型 说明 其他
isOnly bool true表示单选,false表示多选(必传)
disable array 禁用区域的id列表(可选)
selected array 已选区域的id列表(可选)

let result = await openDeviceSelector({isOnly: false, selected: ['id'], disable: ['id']});

选择部门和成员 selectDeptAndMember

引入

import {selectDeptAndMember} from 'yiyun-app-sdk'

接口参数

参数名 参数类型 说明 其他
disable object
selected object

disable内容说明:

参数名 参数类型 说明 其他
members Array 禁用的成员id列表
depts Array 禁用的部门id列表

selected 内容同disable:

参数名 参数类型 说明 其他
members Array 已选的成员id列表
depts Array 已选的部门id列表

返回值为Object,内容如下

参数名 参数类型 说明 其他
members Array member对象的列表
depts Array dept对象的列表
member对象:
参数名 参数类型 说明 其他
userId string 成员的用户Id
name string 成员的姓名
memberId string 成员的id

dept对象:

参数名 参数类型 说明 其他
id string 部门的id
name string 部门名

let result = await selectDeptAndMember({
  disable: {
    members: ['...','...',...],
    depts: ['...','...',...]
  },
  selected: {
    members: ['...','...',...],
    depts: ['...','...',...]
  }
});
console(result)
//输出结果为
{
  members: [
    {
      userId: '',
      name: '',
      memberId: ''
    },{
      userId: '',
      name: '',
      memberId: ''
    },...
  ],
  depts: [
    {
      id: '',
      name: ''
    }, {
      id: '',
      name: ''
    },...
  ]
}

选择成员 selectMember

引入

import {selectMember} from 'yiyun-app-sdk'

接口参数

参数名 参数类型 说明 其他
isOnly bool 是否单选
disable array 禁用的成员id列表
selected array 已选的成员id列表

返回值为member组数,member对象如下

参数名 参数类型 说明 其他
userId string 成员的用户Id
name string 成员的姓名
memberId string 成员的id

let result = await selectMember({
  isOnly: false,
  disable: ['...','...',...],
  selected: ['...','...',...]
});
console(result)
//输出结果为
[
  {
    userId: '',
    name: '',
    memberId: ''
  },{
    userId: '',
    name: '',
    memberId: ''
  },...
]

选择部门 selectDept

引入

import {selectDept} from 'yiyun-app-sdk'

接口参数

参数名 参数类型 说明 其他
isOnly bool 是否单选
disable array 禁用的部门id列表
selected array 已选的部门id列表

返回值为dept组数,dept对象如下

参数名 参数类型 说明 其他
id string 部门的id
name string 部门名

let result = await selectDept({
  isOnly: false,
  disable: ['...','...',...],
  selected: ['...','...',...]
});
console(result)
//输出结果为
[
  {
    id: '',
    name: ''
  },{
    id: '',
    name: ''
  },...
]

选择某部门下的成员 selectMemberOfDept

引入

import {selectMemberOfDept} from 'yiyun-app-sdk'

接口参数

参数名 参数类型 说明 其他
deptId string 部门Id(必填)
isOnly bool 是否单选
disable array 禁用的成员id列表
selected array 已选择的成员id列表

返回值为member组数,member对象如下

参数名 参数类型 说明 其他
userId string 成员的用户Id
name string 成员的姓名
memberId string 成员的id

let result = await selectMemberOfDept({
  deptId: '...',
  isOnly: false,
  disable: ['...','...',...],
  selected: ['...','...',...]
});
console(result)
//输出结果为
[
  {
    userId: '',
    name: '',
    memberId: ''
  },{
    userId: '',
    name: '',
    memberId: ''
  },...
]

选择岗位 selectPost

引入

import {selectPost} from 'yiyun-app-sdk'

接口参数

参数名 参数类型 说明 其他
isOnly bool 是否单选
disable array 禁用的岗位id列表
selected array 已选的岗位id列表

返回值为post组数,post对象如下

参数名 参数类型 说明 其他
id string 岗位的id
name string 岗位名
level string 岗位等级

let result = await selectPost({
  isOnly: false,
  disable: ['...','...',...],
  seletced: ['...','...',...]
});
console(result)
//输出结果为
[
  {
    id: '',
    name: '',
    level: '',
  },{
    id: '',
    name: '',
    level: ''
  },...
]

选择联系人 selectContact

import {selectContact} from 'yiyun-app-sdk'

selectContact(true) // 接受bool,是否单选

返回值为user数组,user对象如下

参数名 参数类型 说明 其他
id string 用户id
name string 用名名称
profilePicture string 用户头像url

let result = await selectContact(false);
console(result)
//输出结果为
[
  {
    id: '',
    name: '',
    profilePicture: ''
  },{
    id: '',
    name: '',
    profilePicture: ''
  },...
]

选择设备实例(树) selectModalTree

import {selectModalTree} from 'yiyun-app-sdk'

返回值为user数组,user对象如下

参数名 参数类型 说明 其他
isOnly bool 是否单选
selected array(String) 已选列表,单选时不生效
disable array(String) 禁用列表,单选时不生效
level int 可供选择的层级,2.厂区,3.区域,4.生产线,5.工位,默认为5

let result = await selectModalTree({isOnly: false,selected: [],disable: [],level: 3});
//输出结果为
[
  {
    id: '',
    isError: '',
    level: '',
    name: '',
    pid: '',
  }
]

选择设备实例(单层) selectModal

import {selectModal} from 'yiyun-app-sdk'

返回值为user数组,user对象如下

参数名 参数类型 说明 其他
isOnly bool 是否单选
id String 模型id,用于限定模型的选择范围,不填默认为整个企业
selected array(String) 已选列表
disable array(String) 禁用列表
level int 可供选择的层级,2.厂区,3.区域,4.生产线,5.工位,默认为5

let result = await selectModal({isOnly: false,selected: [],disable: [],level: 3, id: ''});
//输出结果为
[
  {
    id: '',
    isError: '',
    level: '',
    name: '',
    pid: '',
  }
]

选择地图 selectMap

import {selectMap} from 'yiyun-app-sdk'

返回值为user数组,user对象如下

参数名 参数类型 说明 其他
isOnly bool 是否单选
id String 模型id
selected array(String) 已选列表
disable array(String) 禁用列表

let result = await selectMap({isOnly: false,selected: [],disable: [], id: ''});
//输出结果为
[
  {
    boundary: '',
    caseId:  '',
    caseName:  '',
    createTime:  '',
    iconId:  '',
    id:  '',
    location:  '',
    mapName:  '',
    mapType:  '',
    modalType:  '',
  }
]

内嵌地图的初始化,改变地图,改变block颜色 yiyunMap

import {yiyunMap} from 'yiyun-app-sdk'

yiyunMap.init('#map') // dom的id
yiyunMap.initGaodeKey('高德key');
yiyunMap.initialMap('地图id', '所属工厂模型实例Id', '块id'); // 第二,第三个参数用于设置中心点
// 如果有区块关联了传入的实例,那么会根据传入的参数改变区块的颜色和透明度
yiyunMap.setBlinkBlockByCase([
          {id: '3p7ax4iGS31',
            fillColor: '#666666',
            fillOpacity: 0.9
          }]);
// 直接改变区块的颜色为指定颜色和透明度
yiyunMap.setBlinkBlockByBlock([
{id: '3pTiETyBXpK',
   fillColor: '#666666',
   fillOpacity: 0.9
}]);

获取成员实例 getMembersFromOrganization

import {getMembersFromOrganization} from 'yiyun-app-sdk'

let res = await getMembersFromOrganization(
    orgId, // 需要查询的组织Id,空表示查询当前用户的企业
    isActiveMember // 是否只显示已经激活的成员,true表示只显示已激活(已绑定),false表示显示全部
)
res = [
    {
        id: '部门id',
        parentId: '父部门Id',
        code: '部门码',
        name: '部门名称',
        createTime: '创建时间戳',
        memberCount: '当前部门下的成员数量(包括下下级)',
        type: '类型:member表示人,dept表示部门',
        children: [...] // 包含子部门和部门下的人,以此类推
    },
    ...
    ,
    {
        id: '成员Id',
        name: '成员名称',
        headPortrait: '头像',
        userId: '用户Id',
        type: '类型:member表示人,dept表示部门',
    }
]

获取岗位实例 getPostsFromOrganization

import {getPostsFromOrganization} from 'yiyun-app-sdk'

let res = await getPostsFromOrganization(
    orgId // 需要查询的组织Id,空表示查询当前用户的企业
)
res = [
    {
        id: '岗位Id',
        name: '岗位名称',
        level: '岗位层级',
        createTime: '创建时间戳',
        memberCount: '岗位上的人数',
        depts: [ // 相关的岗位(根据成员的部门-岗位得到的)
            { id: '岗位Id', name: '岗位名称' },
            ...
        ]
    },
    ...
]

获取部门实例 getDeptFromOrganization

import {getDeptFromOrganization} from 'yiyun-app-sdk'

let res = await getDeptFromOrganization(
    orgId // 需要查询的组织Id,空表示查询当前用户的企业
)
res = [
    {
        id: '部门id',
        parentId: '父部门Id',
        code: '部门码',
        name: '部门名称',
        createTime: '创建时间戳',
        memberCount: '当前部门下的成员数量(包括下下级)',
        children: [...] // 包含子部门列表,子部门可能存在子部门,以此类推
    },
    ...
]

获取成员岗位实例 getMemberAndPostFromOrganization

import {getMemberAndPostFromOrganization} from 'yiyun-app-sdk'

let res = await getMemberAndPostFromOrganization(
    orgId, // 需要查询的组织Id,空表示查询当前用户的企业
    isActiveMember // 是否只显示已经激活的成员,true表示只显示已激活(已绑定),false表示显示全部
)

res = [
    {
        id: '部门id',
        parentId: '父部门Id',
        code: '部门码',
        name: '部门名称',
        createTime: '创建时间戳',
        memberCount: '当前部门下的成员数量(包括下下级)',
        type: 'dept',
        children: [
            ...,
            {
                id: '岗位Id',
                name: '岗位名称',
                level: '岗位层级',
                type: 'position'
            }
            ...,
        ] // 包含子部门、部门下的人及部门下的岗位,以此类推
    },
    ...
    ,
    {
        id: '成员Id',
        name: '成员名称',
        headPortrait: '头像',
        userId: '用户Id',
        type: 'member',
    }
]

获取部门下的成员实例 getMemberByDeptFromOrganization

import {getMemberByDeptFromOrganization} from 'yiyun-app-sdk'

let res = await getMemberByDeptFromOrganization(
    orgId, // 需要查询的组织Id,空表示查询当前用户的企业
    deptId // 部门Id(必填)
)
res = [
    {
        id: '成员Id',
        name: '成员名称',
        headPortrait: '头像',
        userId: '用户Id'
    },
    ...
]

分享文件到微信 shareFileToWechat

import {shareFileToWechat} from 'yiyun-app-sdk'

let res = await shareFileToWechat({
    url: 必填,文件的url,
    name: 必填,文件名称,不能超过50个字符,
    extension: 必填,文件后缀名,不能超过10个字符

})

分享网页到微信 shareWebPageToWechat

import {shareWebPageToWechat} from 'yiyun-app-sdk'

let res = await shareWebPageToWechat({
    url: 必填,网页的url,
    title: 必填,分享内容的标题,
    subTitle:必填,分享内容的描述,
    thumbnail: 必填,缩略图网址,
})

分享网页到微信(可以调回亦云) shareWebPageToWechatLoop

注意,如果点击的用户没有购买过应用,会出现'找不到对应的应用'的提示

注意,url不能直接如果带参数的话,参数不能是中文

import {shareWebPageToWechatLoop} from 'yiyun-app-sdk'

let res = await shareWebPageToWechatLoop({
    url: 必填,网页的url,
    title: 必填,分享内容的标题,
    subTitle:必填,分享内容的描述,
    thumbnail: 必填,缩略图网址,
})

选择E盘本地文件 selectLocalFile

从亦云本地文件夹中选择文件

返回值为文件的本地路径

import {selectLocalFile} from 'yiyun-app-sdk'

let res = await selectLocalFile()

返回值为Object,内容如下

参数名 参数类型 说明 其他
url String 本地文件路径
code int 错误码(未定)

从E盘选择文件 selectFileFromEDisk

返回值为E盘文件的属性值

import {selectFileFromEDisk} from 'yiyun-app-sdk'

let res = await selectFileFromEDisk({
isPersonalDisk: 选填,默认false,true是从个人盘中取文件, false是从当前企业盘中取文件
support: string,例: '1,2', 0.pdf 1.txt 2.doc、docx 3.xls、xlsx 4.ppt、pptx 5.csv 6.jpeg、jpg 7.png 8.gif 9.bmp 10.zip 11.rar 12.7z 13.mp3 14.mov 15.mp4 16.ogg 17.mpv 18.wmv 19.fmp4 20.wav 21.arm 22.flv 23.其他
})

返回值为Object,内容如下

参数名 参数类型 说明 其他
diskId String 盘的ID
fileId String 文件ID
parentId String 父ID
name String 文件的显示名称
fullPath String E盘文件路径
size int 文件大小
uploaderName String 上传人
url String 文件的url,有效期7天
thumbnail String 缩略图(仅在是图片时有效)

从E盘选择文件 selectFoldFromEDisk

返回值为E盘文件夹的属性值

import {selectFoldFromEDisk} from 'yiyun-app-sdk'

let res = await selectFoldFromEDisk({
isPersonalDisk: 选填,默认false,true是从个人盘中取文件, false是从当前企业文件夹中取文件
})

返回值为Object,内容如下

参数名 参数类型 说明 其他
diskId String 盘的ID
foldId String 文件ID, 可空

预览E盘文件 eDiskFilePreview

import {eDiskFilePreview} from 'yiyun-app-sdk'

let res = await eDiskFilePreview({
    diskId: 必填,盘ID,
    fileId: 必填, 文件ID
})

根据盘id和文件id获取文件的url getEDiskFileLink

import {getEDiskFileLink} from 'yiyun-app-sdk'

let res = await getEDiskFileLink({
    diskId: 必填,盘ID,
    fileId: 必填, 文件ID
})

返回值为Object,内容如下

参数名 参数类型 说明 其他
url String 文件的url
expireTime int 链接的过期时间

上传文件到亦盘 uploadBase64

import {uploadBase64} from 'yiyun-app-sdk'

let res = await uploadBase64({
    isPersonalDisk: bool 默认false 是否上传到个人盘, targetFoldId: String 必填 文件夹id,
    file:String 必填 文件内容 示例:iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAA3ElEQVQ4je3UMUoDQRSH8QmEEAsJG1BS5QLBc4insPMQEQI2pnELEctszmORJpA2hSi6nZ2,
    fileName: String 文件名称 必填,
    extension: String 必填 文件后缀名
})

返回值为Object,内容如下

参数名 参数类型 说明 其他
id String 文件的id,可以用来移除任务和获取上传的结果
filename String 文件的名称
targetId String 目标文件夹id
diskId String 盘ID
size int 文件大小

上传文件到亦盘 uploadFile

import {uploadFile} from 'yiyun-app-sdk'

let res = await uploadFile({
    isPersonalDisk: bool 默认false 是否上传到个人盘, targetFoldId: String 必填 文件夹id,
    file:String 必填 文件路径,当前只能通过selectLocalFile方法获取
})

返回值为Object,内容如下

参数名 参数类型 说明 其他
id String 文件的id,可以用来移除任务和获取上传的结果
filename String 文件的名称
targetId String 目标文件夹id
diskId String 盘ID
size int 文件大小

获取文件的上传状态 getUploadStatus

上传失败会报错

import {getUploadStatus} from 'yiyun-app-sdk'

let res = await getUploadStatus({
    id: String 必填 文件id, 
})

取消上传任务 removeTask

import {getUploadStatus} from 'yiyun-app-sdk'

let res = await removeTask({
    id: String 必填 文件id, 
})

监听扫描蓝牙设备 onScan

onScan((res)=>{
	//每次新扫描到设备都会进入这里执行操作
});
res = [
    {
        id: '设备的uuid',
        name: '设备名称',
    },
    ...
]

连接设备 connect

let res = await connect({
    uuid: 必填,设备的uuid,
})

返回

  • 0 连接成功
  • -1 连接超时
  • -2 蓝牙地址格式错误
  • -3 打印机与SDK不匹配(握手不通过)

获取打印机状态 currentConnectedDevice

let res = await currentConnectedDevice()

返回

  • 0 打印机正常连接
  • 1 未连接
  • -1 发送失败
  • 2 缺纸
  • 6 开盖

断开当前连接设备 disconnect

import {disconnect} from 'yiyun-app-sdk'

let res = await disconnect()

设置标签高度 printAreaSize

import {printAreaSize} from 'yiyun-app-sdk'

let res = await YiYun.printAreaSize({参数都是必填
offset:'0', 上下文对象
horizontal:'200',打印机水平方向dpi(根据实际打印机dpi设置)
vertical:'200',打印机垂直方向dpi(根据实际打印机dpi设置)
height:'1400',标签高度 (单位:dot)200dpi 8 dot = 1mm,300dpi 12 dot = 1mm
qty:'1'打印次数
});

设置对齐方式 align

import {align} from 'yiyun-app-sdk'

let res = await align({
	align: 'CENTER' 必填,对齐方式,String格式
})
参数 描述
align 'CENTER':居中。
'LEFT':左对⻬。
'RIGHT':右对⻬。

文本打印 printText

let res = await printText({都必填
command:'T',
font:'8', 
x:'50', 
y:'5', 
data:'SELF_TEST'
})
参数 描述
command 文字的方向
'T'':水平。
'T90':逆时针旋转90度。
'T180':逆时针旋转180度。
'T270':逆时针旋转270度。
font 字体点阵大小:(单位:dot)
注意:英文固件只支持(0和1)。
0:12x24。
1:12x24(中文模式下打印繁体),英文模式下字体变成(9x17)大小
2:8x16。
3:20x20。
4:32x32或者16x32,由ID3字体宽高各放大两倍。
7:24x24或者12x24,视中英文而定。
8:24x24或者12x24,视中英文而定。
20:16x16或者8x16,视中英文而定。
24:24x24或者12x24,视中英文而定。
55:16x16或者8x16,视中英文而定。
其它默认24x24或者12x24,视中英文而定。
x 横坐标(单位 dot)
y 纵坐标(单位 dot
Data 文本数据

打印条码 printCode

let res = await printCode({都必填
command:'BARCODE',
codeType:'128',
width:'2',
ratio:'1',
height:'50',
x:'0',
y:'100',
underText:true,
number:'7',
size:'0',
offset:'5',
data:'123456789'
})
参数 描述
command 'BARCODE':水平方向
'VBARCODE':垂直方向
codeType 条码类型:
UPCA = "UPCA"; UPCA2 = "UPCA2"; UPCA5 = "UPCA5"; UPCE = "UPCE"; UPCE2 = "UPCE2"; UPCE5 = "UPCE5"; EAN13 = "EAN13"; EAN132 = "EAN132"; EAN135 = "EAN135"; EAN8 = "EAN8"; EAN82 = "EAN82"; EAN85 = "EAN85"; code39 = "39"; code39C = "39C"; F39 = "F39"; F39C = "F39C"; code93 = "93"; I2OF5 = "I2OF5"; I2OF5C = "I2OF5C"; I2OF5G = "I2OF5G"; code128 = "128"; UCCEAN128 = "UCCEAN128"; CODABAR = "CODABAR"; CODABAR16 = "CODABAR16"; MSI = "MSI"; MSI10 = "MSI10"; MSI1010 = "MSI1010"; MSI1110 = "MSI1110"; POSTNET = "POSTNET"; FIM = "FIM";
Width 窄条的单位宽度
ratio 宽条窄条的比例
0=1.5:1 , 1=2.0:1 , 2=2.5:1 , 3=3.0:1 , 4=3.5:1 , 20=2.0:1 , 21=2.1:1 , 22=2.2:1 , 23=2.3:1 , 24=2.4:1 , 25=2.5:1 26=2.6:1 , 27=2.7:1 , 28=2.8:1 , 29=2.9:1 , 30=3.0:1 ,
Height 条码高度
x 条码的起始横坐标。(单位:dot)
y 条码的起始纵坐标。(单位:dot)
undertext 条码下方的数据是否可⻅。 ture:可⻅,false:不可⻅。
number 字体的类型 (undertext=true才生效) undertext=false也要传,随便填
size 字体的大小(undertext=true才生效)undertext=false也要传,随便填
offset 条码与文字间的距离(undertext=true才生效)undertext=false也要传,随便填
data 条码数据

打印二维码 printQR

let res = await printQR({
command:'BARCODE',
x:'0',
y:'870',
m:'4',
u:'6',
data:'ABC123'
})
参数 描述
command 'BARCODE':水平方向
'VBARCODE':垂直方向
x 二维码的起始横坐标。(单位:dot)
y 二维码的起始纵坐标。(单位:dot)
m QR的类型:
1:普通类型
2:在类型1的基础上增加了个别的符号
传'4'即可
u 单位宽度/模块的单元高度,范围是1到32默认为6
data 二维码的数据

打印直线 printLine

let res = await printLine({
x0:'0',
y0:'1030',
x1:'400',
y1:'1030',
width:'1'
})
参数 描述
X0 起始的X坐标。(单位:dot)
Y0 起始的Y坐标。(单位:dot)
X1 结尾的X坐标。(单位:dot)
Y1 结尾的Y坐标。(单位:dot)
width 线条的单位宽度。 (默认:1)

打印矩形框 printBox

let res = await printBox({
x0:'0',
y0:'1030',
x1:'400',
y1:'1030',
width:'1'
})
参数 描述
X0 左上⻆的X坐标。(单位:dot)
Y0 左上⻆的Y坐标。(单位:dot)
X1 右下⻆的X坐标。(单位:dot)
Y1 右下⻆的Y坐标。(单位:dot)
width 线条的单位宽度。 (默认:1)

打印内容 print

先设置打印高度,然后调用打印文字或者二维码的函数,最后调用print()就可以打印了

import {print} from 'yiyun-app-sdk'

await printAreaSize({offset:'0', horizontal:'200', vertical:'200', height:'1400', qty:'1'});
await align({align:'CENTER'});
await printText({command:'T', font:'8', x:'50', y:'5', data:'SELF_TEST'});
await align({align:'LEFT'});
await printCode({command:'BARCODE', codeType:'128', width:'2', ratio:'1', height:'50', x:'0', y:'100', underText:true, number:'7', size:'0', offset:'5', data:'123456789'});
await printQR({command:'BARCODE', x:'0', y:'870', m:'4', u:'6', data:'ABC123'});
await printLine({x0:'0', y0:'1030',x1:'400',y1:'1030',width:'1'});
await printBox({x0:'0', y0:'1080',x1:'400',y1:'1300',width:'1'});
await print();

返回

  • 大于0 打印成功
  • -1 打印失败

打印图片 printImage

直接调用该函数打印即可,不用设置高度,也不用调用print()函数

let res = await printImage({
    imagePath: 必填,图片路径,
    count: 必填,打印数量
})

返回

  • 大于0 打印成功
  • -1 打印失败
  • -2 bitmap为空
  • -3 图片数据超过打印机缓冲区

设置页面宽度 pageWidth

在printAreaSize之后调用

指定⻚面宽度。(单位:dot) 200dpi 8 dot = 1mm 70mm的宽度设置560

let res = await pageWidth({width:'560'})

返回

  • 大于0 发送成功
  • -1 发送失败

标签定位 form

在Print()之前调用,只在标签模式下起作用

let res = await form()

返回

  • 大于0 发送成功
  • -1 发送失败

文件下载 downloadFile

import {downloadFile} from 'yiyun-app-sdk'

let res = await downloadFile({
    url: '文件地址',
    onStart: () => {
        // 开始下载的回调
    },
    onReceiveProgress: (data) => {
        // 下载过程中的调用 data为 {receive:10000,total:20000}
    },
    onError: (err) => {
        // 错误的回调
    },
    onComplete: () => {
        // 下载完成的回调
    }
})

返回值为Object,内容如下

参数名 参数类型 说明 其他
url String 文件地址
onStart Function 下载开始的处理
onReceiveProgress Function 下载进度的处理
onError Function 下载错误的处理
onComplete Function 下载完成的处理

onReceiveProgress返回一个Object,内容如下

参数名 参数类型 说明 其他
receive number 已下载的大小
total number 总大小

获取设备标识 getDeviceIdentity

import {getDeviceIdentity} from 'yiyun-app-sdk'

let res = await getDeviceIdentity()

发起审批 toApplyApprove

import {toApplyApprove} from 'yiyun-app-sdk'

await toApplyApprove()

打开与某用户的私聊 openConversation

import {openConversation} from 'yiyun-app-sdk'

await openConversation(userId)

请求参数

参数名 参数类型 说明 其他
userId string 对象的用户id

异常说明

参数名 参数类型 说明
errCode int 错误码:1001
message string 错误说明。1001:用户不存在

打开与某用户的信息页面 openUserInfo

import {openUserInfo} from 'yiyun-app-sdk'

await openUserInfo(userId)

请求参数

参数名 参数类型 说明 其他
userId string 对象的用户id

异常说明

参数名 参数类型 说明
errCode int 错误码:1001
message string 错误说明。1001:用户不存在

获取可以打开的外部导航应用 getEnableMap

import {getEnableMap} from 'yiyun-app-sdk'

let res = await getEnableMap({
    latitude: ,
    longitude: ,
})

console.log(res) // [0,1,2]

请求参数

参数名 参数类型 说明 其他
latitude double 目标位置的纬度
longitude double 目标位置的经度

返回值为地图枚举的Array

其中 0: 高德地图 1:腾讯地图 2:百度地图 3:苹果地图(安卓不会返回该类型)

异常说明

参数名 参数类型 说明
errCode int 错误码:1001
message string 错误说明。1001:经纬度数据有误

打开外部导航 openMap

import {openMap} from 'yiyun-app-sdk'

let res = await openMap({
    mapType: 0,
    latitude: ,
    longitude: ,
})

请求参数

参数名 参数类型 说明 其他
mapType num 地图类型的枚举 0: 高德地图 1:腾讯地图 2:百度地图 3:苹果地图(安卓不会返回该类型)
latitude double 目标位置的纬度
longitude double 目标位置的经度

异常说明

参数名 参数类型 说明
errCode int 错误码:1001、1002、1003
message string 错误说明。1001:经纬度数据有误 1002: 无法识别的地图类型 1003: 无法打开该地图

获取wifi信息 getWifiInfo

import {getWifiInfo} from 'yiyun-app-sdk'

let res = await getWifiInfo()

返回值为Object 结构如下

参数名 参数类型 说明 其他
name string Wi-Fi名称
bssid string Wi-Fi的bssid
ip string Wi-Fi的ip地址

异常说明

参数名 参数类型 说明
errCode int 错误码:1001、1002
message string 错误说明。1001:未连接wifi 1002: 未开启定位权限,无法获取准确的Wi-Fi信息

发送消息 sendMessage

import {sendMessage} from 'yiyun-app-sdk'

let res = await sendMessage({
    userId: '',
    message: {
        type: 0,
        data: {
            text: '123'
        }
    }
})

请求参数

参数名 参数类型 说明 其他
userId string 消息发送的对象
message object 消息体

message对象说明

参数名 参数类型 说明 其他
type num 地图类型的枚举 0: 文本消息 4:卡片消息 5:位置消息
data object 对应消息类型的数据对象

data对象说明

当type = 0时

参数名 参数类型 说明 其他
text string 文本内容

当type = 4时

参数名 参数类型 说明 其他
title string 卡片标题
content string 卡片内容

当type = 5时

参数名 参数类型 说明 其他
latitude double 纬度
longitude double 经度

异常说明

参数名 参数类型 说明
errCode int 错误码:1001、1002、1003、1004、1005、1006
message string 错误说明。1001:用户不存在 1002: 消息体结构有误 1003: 无法识别的消息类型 1004: 文本消息的text不能为空 1005: 卡片消息的title和content不能同时为空 1006: 经纬度数据有误

跳转其他app navigatorToApp

import {navigatorToApp} from 'yiyun-app-sdk'

let res = await navigatorToApp({
    appId: '',
    path: '',
    fregment: ''
})

// path 和 fregment 同开放平台处配置看板跳转填写的内容
// 如: app 地址为 "https://aaa.bbb.ccc/index.html", path为 "setting.html", fregment 为 "/route?a=1&b=2"
// 则跳转的页面为 "https://aaa.bbb.ccc/setting.html#/route?a=1&b=2"
参数名 参数类型 说明 其他
appId string 目标appId
path string 目标app项目目录下的页面路径
fregment string 额外的路由以及参数

异常说明

参数名 参数类型 说明
errCode int 错误码:2001、2002、2003
message string 错误说明。2001: 获取app失败 2002: 应用未购买 2003: 应用未授权

向管理员发送应用权限申请 applyAppPermissions

import {applyAppPermissions} from 'yiyun-app-sdk'
try {
    let res = await applyAppPermissions()
} catch (e) {
    
}

异常说明

参数名 参数类型 说明
errCode int 错误码:1001、1002
message string 错误说明。1001:app无需授权 1002: 发送失败

跳转应用权限授权页面 toSetAppPermissions

import {toSetAppPermissions} from 'yiyun-app-sdk'
try {
    let res = await toSetAppPermissions()
} catch (e) {
    
}

检查NFC权限 checkNFCPermission

import {checkNFCPermission} from 'yiyun-app-sdk'
try {
    let res = await checkNFCPermission()
    // res: true 可用 false 不可用
} catch (e) {
    
}

读取NCF标签 readNFC

import {readNFC} from 'yiyun-app-sdk'
try {
    let res = await readNFC()
} catch (e) {
    
}

返回结果

参数名 参数类型 说明
id string NFC的id
type string NFC的类型
records List NFC标签的内容

record内容如下

参数名 参数类型 说明
id string record的id
data string record的内容
type string 内容的类型
tnf string NFCTypeNameFormat, 具体有well_known,mime_media,absolute_uri,external_type,unchanged,unknown,empty
languageCode string 语言

异常说明

参数名 参数类型 说明
errCode int 错误码:1001、1002、1003、1004、1005、1006、1007、1100、1101
message string 错误说明。1001:取消扫描 1002: 扫描超时 1003:系统不支持NDEF 1004: 意外终止 1005: NFC系统繁忙 1006: IO操作异常 1007: NDEF格式有误 1100: 读取失败 1101: NFC不可用

写入NCF标签内容 writeNFC

import {writeNFC} from 'yiyun-app-sdk'
try {
    let res = await writeNFC([{
                                 'tnf': 0,
                                 'data': 'iiiiiiiiiiiii'
                               },{
                                 'tnf': 1,
                                 'data': 'https://effio.cn'
                               },{
                                 'tnf': 2,
                                 'type': 'text/plain',
                                 'data': '哈哈哈'
                               },{
                                 'tnf': 2,
                                 'type': 'application/json',
                                 'data': '{"a": 123}'
                               },{
                                 'tnf': 3,
                                 'type': 'hhh',
                                 'data': '4sXoi112F'
                           }])
} catch (e) {
    
}

接收List record 内容如下

参数名 参数类型 说明
tnf int 0: 文本 1: url类型 2: mime_media 3: external_type
type string record的类型,当tnf为0或1时可不传 tnf = 0时,type 固定为"T"(文本类型);tnf = 1时,type 固定为"U"(uri类型)
data string record的内容

异常说明

参数名 参数类型 说明
errCode int 错误码:1001、1002、1003、1004、1005、1006、1007、1100、1101
message string 错误说明。1001:取消扫描 1002: 扫描超时 1003:系统不支持NDEF 1004: 意外终止 1005: NFC系统繁忙 1006: IO操作异常 1007: NDEF格式有误 1008: 打开了多个NFC识别器 1009: NFC tag不可用 1010: NFC tag不可写 1011: 写入内容超出该NFC tag的容量 1012: 更新失败 1100: 写入失败 1101: NFC不可用

Readme

Keywords

none

Package Sidebar

Install

npm i yiyun-app-sdk

Weekly Downloads

4

Version

1.3.7

License

MIT

Unpacked Size

423 kB

Total Files

14

Last publish

Collaborators

  • wingoht