@crestron/ch5-webxpanel

中文文档
2.8.0发布于 2024/01/09SEE LICENSE IN LICENSE.txtTypeScriptCommonJS零依赖近 30 天下载 3954

Ch5 组件库的浏览器控制

中文使用文档
文档目录14 节
  1. 重要:WebX 没有导入语句的面板实例
  2. 安装
  3. 检查WebX是否 面板活动
  4. 检查 WebXPanel 版本并构建日期
  5. 合同文件
  6. 网络X 小组记录
  7. 正在收听 WebX小组事件
  8. 现有事件及其描述
  9. 听从 LICENSE_WS cH5项目的事件
  10. 听从 NOT_AUTHORIZED cH5项目的事件
  11. 听从 CONNECT_CIP cH5项目的事件
  12. 听从 DISCONNECT_CIP cH5项目的事件
  13. 测试
  14. 构建

Crestron 网络X 面板 - 开始

重要:WebX 没有导入语句的面板实例

使用 WebXPanel.default 访问 WebXPanel 实例,如果项目不使用 ES6 import 发言.


安装

通过在 WebXPanel 项目的根文件夹中运行以下命令之一来提供您的软件包 :

# NPM
npm link

添加 WebX 通过在 CH5 工程的根文件夹中运行以下命令之一,对一个 CH5 工程进行面板:

# NPM
npm link "@crestron/ch5-webxpanel"

请确保 WebXPanel 是第一个在CH5 计划中初始化的库!

所有配置参数都是可选的 。 只应定义需要覆盖的参数。 对于不应定义的参数,不要通过空字符串值.

示例:(app.module.ts)

import WebXPanel, {WebXPanelConfigParams, isActive} from "@crestron/ch5-webxpanel";

const configuration: Partial<WebXPanelConfigParams> = {
    host: 'ip_address | hostname', // defaults to window.location.host
    ipId: '3|0x03', // string representing a hex value. Might contain "0x" or not. Defaults to "0x03"
    roomId: 'virtual_control_room_id', // defaults to empty string
};
// other rarely used options
//     port: 49200, // port for Secure WebSocket connection. Defaults to 49200
//     tokenUrl: 'https://url/cws/websocket/getWebSocketToken', // defaults to `${location.origin}/cws/websocket/getWebSocketToken`,
//     tokenSource: 'CSSelf|Fusion', // defaults to CSSelf

const webXPanelFactory = () => () => {
  if (isActive) {
    WebXPanel.initialize(configuration);
  }
}
// ...

@NgModule({
  // ...
  providers: [
    { provide: APP_INITIALIZER, useFactory: webXPanelFactory, multi: true },
    // ...
  ],
  // ...
})

// ...

检查WebX是否 面板活动

import {isActive} from "@crestron/ch5-webxpanel";

console.log(`WebXPanel isActive: ${isActive}`);

检查 WebXPanel 版本并构建日期

import {getVersion, getBuildDate} from "@crestron/ch5-webxpanel";

console.log(`WebXPanel version: ${getVersion()}`);
console.log(`WebXPanel build date: ${getBuildDate()}`);

合同文件

WebXPanel 库将找到名为合同的文件 contract.cse2j cH5项目中的以下路径: ./config/contract.cse2j。如果在指定的路径没有找到合同文件,WebXPanel将返回空合同文件.


网络X 小组记录

WebXPanel 库提供了默认启用的日志器,日志级别设定为 WARN。这可以从CH5项目中更改,如果需要,可以在浏览器控制台中看到日志.

import { 
  getDebuggingState, 
  enableDebugging, 
  disableDebugging,
  getLogLevel,
  setLogLevel,
  LogLevel
} from "@crestron/ch5-webxpanel";

const isLoggingEnabled = getDebuggingState();

// to enable logging
enableDebugging();

// to disable debugging
disableDebugging();

// get current log level
getLogLevel();

// set log level to LOG
setLogLevel(LogLevel.LOG);


正在收听 WebX小组事件

WebXPannel发送的所有事件都是自定义事件. 每项活动的有关数据可在 detail 属性.

现有事件及其描述

事件名称调度原因其他资料
连接( W)已建立成功的 WebSocket 连接类似 WebSocket.onopen
(原始内容存档于2019-10-21) (英语). DISCONNECT WSWebSocket 连接已断开类似 WebSocket.onclose
错误 WS在websocket上发生错误类似 WebSocket.onerror
FETCH TOKEN FAIED (英语)获取核聚变令牌失败
WEB WORKER 发音当前浏览器中不支持工作人
连接( C)通过 CIP 协议成功连接到控制系统提供当前连接的信息 .
不一样 CONNECT_WS
分解NECT CIP在CIP协议上与控制系统断开连接不一样 DISCONNECT_WS
自动失效认证到控制系统失败
(原始内容存档于2019-10-21) (中文(简体) )控制系统需要验证符
(原始内容存档于2018-09-21) (英语). LICENSE WS许可证发生变化(例如,获得许可证、许可证/试用期更新)
无授权这个 /cws/websocket/getWebSocketToken 端点响应是重定向

听从 LICENSE_WS cH5项目的事件

import WebXPanel, {WebXPanelEvents} from "@crestron/ch5-webxpanel";

WebXPanel.addEventListener(WebXPanelEvents.LICENSE_WS, ({detail}) => {
  const {
    resourceAvailable,
    controlSystemSupportsLicense,
    licenseApplied,
    licenseNotRequired,
    licenseHasExpiry,
    licenseDaysRemaining,
    trialPeriod,
    trialPeriodDaysRemaining,
    licenseNotRequired
  } = detail;

  // other callback code
});

听从 NOT_AUTHORIZED cH5项目的事件


  WebXPanel.addEventListener(WebXPanelEvents.NOT_AUTHORIZED, ({detail}) => {
    const {redirectTo} = detail;
    console.log(`Received a redirect to: ${redirectTo}`);
    
    // login on the redirectTo page then try authenticating
    WebXPanel.authenticate();
    // or refreshing the page
    window.reload();
  });

听从 CONNECT_CIP cH5项目的事件


  WebXPanel.addEventListener(WebXPanelEvents.CONNECT_CIP, ({detail}) => {
    const {url, ipId, roomId, tokenSource, tokenUrl} = detail;
    console.log(`Connected to ${{url, ipId, roomId, tokenSource, tokenUrl}}`);
  });

听从 DISCONNECT_CIP cH5项目的事件


  WebXPanel.addEventListener(WebXPanelEvents.DISCONNECT_CIP, ({detail}) => {
    const {reason} = detail;
    console.log(`Disconnected from CIP. Reason: ${reason}`);
  });

测试

# NPM
npm test

构建

# NPM
npm build

版本与发布记录

@crestron/ch5-webxpanel 共发布 9 个版本,首次发布于 2021/02/01;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.8.0latest2024/01/092 年前
2.6.12023/10/273 年前
2.6.02023/10/243 年前
2.5.02023/09/063 年前
2.0.02022/08/224 年前
1.2.52021/11/194 年前

其他发布通道:latest-beta → 1.0.3-beta1。

关于 @crestron/ch5-webxpanel 的常见问题

@crestron/ch5-webxpanel 是什么?

Ch5 组件库的浏览器控制

如何安装 @crestron/ch5-webxpanel?

在项目目录运行 npm install @crestron/ch5-webxpanel,或使用 pnpm add / yarn add / bun add。

@crestron/ch5-webxpanel 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@crestron/ch5-webxpanel 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@crestron/ch5-webxpanel 可以商用吗?

@crestron/ch5-webxpanel 使用 SEE LICENSE IN LICENSE.txt 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@crestron/ch5-webxpanel 的下载量有多少?

根据 npm 官方下载统计,@crestron/ch5-webxpanel 在 2026/10/11 – 2026/11/09 这 30 天内被下载 3,954 次,日均约 132 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@crestron/ch5-webxpanel 还在维护吗?

最新版本 2.8.0 发布于 2024/01/09(2 年前);至今共发布 9 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/02/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。