@ray-js/components 0.6.8 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/lib/Camera/Camera.d.ts +2 -0
  2. package/lib/Camera/Camera.js +7 -0
  3. package/lib/Camera/Camera.thing.d.ts +4 -0
  4. package/lib/Camera/Camera.thing.js +8 -0
  5. package/lib/Camera/Camera.wechat.d.ts +2 -0
  6. package/lib/Camera/Camera.wechat.js +8 -0
  7. package/lib/Camera/index.d.ts +3 -0
  8. package/lib/Camera/index.js +2 -0
  9. package/lib/Camera/index.md +48 -0
  10. package/lib/IpcPlayer/IpcPlayer.d.ts +1 -3
  11. package/lib/IpcPlayer/IpcPlayer.js +1 -1
  12. package/lib/IpcPlayer/IpcPlayer.thing.d.ts +1 -1
  13. package/lib/IpcPlayer/IpcPlayer.wechat.d.ts +1 -2
  14. package/lib/IpcPlayer/IpcPlayer.wechat.js +1 -1
  15. package/lib/IpcPlayer/index.d.ts +1 -1
  16. package/lib/IpcPlayer/index.js +0 -1
  17. package/lib/IpcPlayer/index.md +7 -7
  18. package/lib/Map/Map.d.ts +2 -0
  19. package/lib/Map/Map.js +7 -0
  20. package/lib/Map/Map.thing.d.ts +4 -0
  21. package/lib/Map/Map.thing.js +8 -0
  22. package/lib/Map/Map.wechat.d.ts +4 -0
  23. package/lib/Map/Map.wechat.js +8 -0
  24. package/lib/Map/index.d.ts +3 -0
  25. package/lib/Map/index.js +2 -0
  26. package/lib/Map/index.md +126 -0
  27. package/lib/NativeVideo/NativeVideo.d.ts +2 -0
  28. package/lib/NativeVideo/NativeVideo.js +7 -0
  29. package/lib/NativeVideo/NativeVideo.thing.d.ts +4 -0
  30. package/lib/NativeVideo/NativeVideo.thing.js +8 -0
  31. package/lib/NativeVideo/NativeVideo.wechat.d.ts +2 -0
  32. package/lib/NativeVideo/NativeVideo.wechat.js +8 -0
  33. package/lib/NativeVideo/index.d.ts +3 -0
  34. package/lib/NativeVideo/index.js +2 -0
  35. package/lib/NativeVideo/index.md +74 -0
  36. package/lib/WebView/WebView.d.ts +2 -0
  37. package/lib/WebView/WebView.js +7 -0
  38. package/lib/WebView/WebView.thing.d.ts +4 -0
  39. package/lib/WebView/WebView.thing.js +8 -0
  40. package/lib/WebView/WebView.wechat.d.ts +4 -0
  41. package/lib/WebView/WebView.wechat.js +8 -0
  42. package/lib/WebView/index.d.ts +3 -0
  43. package/lib/WebView/index.js +2 -0
  44. package/lib/WebView/index.md +33 -0
  45. package/lib/index.d.ts +4 -0
  46. package/lib/index.js +5 -1
  47. package/package.json +4 -4
  48. package/lib/IpcPlayer/props.d.ts +0 -47
  49. package/lib/IpcPlayer/props.js +0 -20
@@ -0,0 +1,2 @@
1
+ declare const Camera: () => JSX.Element;
2
+ export default Camera;
@@ -0,0 +1,7 @@
1
+ import React from 'react'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
2
+
3
+ var Camera = function () {
4
+ return /*#__PURE__*/React.createElement("div", null, "web\u7AEF\u6682\u672A\u5B9E\u73B0");
5
+ };
6
+
7
+ export default Camera;
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { CameraProps } from '@ray-js/adapter';
3
+ declare const Camera: React.FC<CameraProps>;
4
+ export default Camera;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { Camera as RemaxCamera } from '@ray-js/adapter';
3
+
4
+ var Camera = function (props) {
5
+ return /*#__PURE__*/React.createElement(RemaxCamera, props);
6
+ };
7
+
8
+ export default Camera;
@@ -0,0 +1,2 @@
1
+ declare function Camera(): JSX.Element;
2
+ export default Camera;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { View } from '@ray-js/components'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
3
+
4
+ function Camera() {
5
+ return /*#__PURE__*/React.createElement(View, null, "\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u7AEF\u6682\u672A\u5B9E\u73B0");
6
+ }
7
+
8
+ export default Camera;
@@ -0,0 +1,3 @@
1
+ import Camera from './Camera';
2
+ export type { CameraProps } from '@ray-js/adapter';
3
+ export default Camera;
@@ -0,0 +1,2 @@
1
+ import Camera from './Camera';
2
+ export default Camera;
@@ -0,0 +1,48 @@
1
+ ---
2
+ nav:
3
+ title: 组件
4
+ path: /components
5
+ group:
6
+ title: 视图容器
7
+ hide: true
8
+ ---
9
+
10
+ ## camera
11
+
12
+ > 基础库 2.2.0 开始支持, 低版本需做兼容处理。
13
+
14
+ 系统相机。相关 API:[ty.createCameraContext](https://developer.tuya.com/cn/miniapp/api/media/camera/create-camera-context)。这是基于异层渲染的原生组件, 请注意 [原生组件使用限制](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
15
+
16
+ ## 导入
17
+
18
+ ```js
19
+ import { Camera } from '@ray-js/components'
20
+ ```
21
+
22
+ ### 属性说明
23
+
24
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 |
25
+ | --- | --- | --- | --- | --- |
26
+ | mode | string | normal | 否 | 应用模式,只在初始化时有效,不能动态变更 |
27
+ | resolution | string | medium | 否 | 分辨率,不支持动态修改;可选值有 `low`: 低,`medium`: 中,`high`: 高 |
28
+ | device-position | string | back | 否 | 摄像头朝向, 可选值有`front`: 前置, `back`: 后置 |
29
+ | flash | string | auto | 否 | 闪光灯, 可选值有`auto`: 自动, `on`: 打开, `off`: 关闭, `torch`: 常亮 |
30
+ | border-width | number | 0 | 否 | 边框的宽度, 单位 px |
31
+ | border-style | string | solid | 否 | 边框的样式, 可选值: solid 和 dashed |
32
+ | border-color | string | #ffffff | 否 | 边框的颜色, 必须为十六进制格式 |
33
+ | border-radius | number | 0 | 否 | 边框的圆角, 单位 px |
34
+ | border-radius-top-left | number | | 否 | 边框的左上角圆角大小, 单位 px |
35
+ | border-radius-top-right | number | | 否 | 边框的右上角圆角大小, 单位 px |
36
+ | border-radius-bottom-left | number | | 否 | 边框的左下角圆角大小, 单位 px |
37
+ | border-radius-bottom-right | number | | 否 | 边框的右下角圆角大小, 单位 px |
38
+ | background-color | string | #ffffff | 否 | 背景颜色, 必须为十六进制格式 |
39
+ | onBindstop | eventhandle | | 否 | 摄像头在非正常终止时触发,如退出后台等情况 |
40
+ | onError | eventhandle | | 否 | 用户不允许使用摄像头时触发 |
41
+ | onInitdone | eventhandle | | 否 | 相机初始化完成时触发,`e.detail = {maxZoom}` |
42
+
43
+ ### Bug & Tip
44
+
45
+ 1. tip:同一页面只能插入一个 `camera` 组件。
46
+ 2. tip:开发者工具上不支持。
47
+ 3. tip:相关原理请参考 [基于异层渲染的原生组件](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
48
+ 4. tip:请注意 [原生组件使用限制](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
@@ -1,4 +1,2 @@
1
- import { FC } from 'react';
2
- import { IpcPlayerProps } from './props';
3
- declare const IpcPlayer: FC<IpcPlayerProps>;
1
+ declare const IpcPlayer: () => JSX.Element;
4
2
  export default IpcPlayer;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React from 'react'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
2
2
 
3
3
  var IpcPlayer = function () {
4
4
  return /*#__PURE__*/React.createElement("div", null, "web\u7AEF\u6682\u672A\u5B9E\u73B0");
@@ -1,4 +1,4 @@
1
1
  import * as React from 'react';
2
- import { IpcPlayerProps } from './props';
2
+ import { IpcPlayerProps } from '@ray-js/adapter';
3
3
  declare const IpcPlayer: React.FC<IpcPlayerProps>;
4
4
  export default IpcPlayer;
@@ -1,3 +1,2 @@
1
- import { IpcPlayerProps } from './props';
2
- declare function IpcPlayer(props: IpcPlayerProps): JSX.Element;
1
+ declare function IpcPlayer(): JSX.Element;
3
2
  export default IpcPlayer;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { View } from '@ray-js/components';
2
+ import { View } from '@ray-js/components'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
3
3
 
4
4
  function IpcPlayer() {
5
5
  return /*#__PURE__*/React.createElement(View, null, "\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u7AEF\u6682\u672A\u5B9E\u73B0");
@@ -1,3 +1,3 @@
1
1
  import IpcPlayer from './IpcPlayer';
2
- export * from './props';
2
+ export type { IpcPlayerProps } from '@ray-js/adapter';
3
3
  export default IpcPlayer;
@@ -1,3 +1,2 @@
1
1
  import IpcPlayer from './IpcPlayer';
2
- export * from './props';
3
2
  export default IpcPlayer;
@@ -39,13 +39,13 @@ import { IpcPlayer } from '@ray-js/components'
39
39
  | border-color | string | #ffffff | 否 | 边框的颜色, 必须为十六进制格式 |
40
40
  | border-radius | number/string | 0 | 否 | 边框的圆角, 单位 px |
41
41
  | background-color | string | #ffffff | 否 | 背景颜色, 必须为十六进制格式 |
42
- | bind:connectchange | eventhandle | | 否 | 当连接状态发生变化时触发,detail = { state }, state: 0 表示连接成功 |
43
- | bind:previewchange | eventhandle | | 否 | 当预览状态发生变化时触发,detail = { state }, state: 1 表示开始预览成功, state: 0 表示结束预览成功 |
44
- | bind:onlinechange | eventhandle | | 否 | 当 ipc 设备在线状态变化时触发,detail = { online }, online: true 表示在线, online: false 表示离线或断电 |
45
- | bind:initdone | eventhandle | | 否 | 初始化完成时触发 |
46
- | bind:zoomchange | eventhandle | | 否 | 视频缩放比例及当前倍数变化,detail = { zoomLevel }, zoomLevel 为缩放比例 |
47
- | bind:videotap | eventhandle | | 否 | 点击视频时触发 |
48
- | bind:error | eventhandle | | 否 | 当状态异层时触发 error 事件,detail = { "errCode": 错误码 , "errMsg": 错误描述 }, 错误码见下表 |
42
+ | onConnectchange | eventhandle | | 否 | 当连接状态发生变化时触发,detail = { state }, state: 0 表示连接成功 |
43
+ | onPreviewchange | eventhandle | | 否 | 当预览状态发生变化时触发,detail = { state }, state: 1 表示开始预览成功, state: 0 表示结束预览成功 |
44
+ | onOnlinechange | eventhandle | | 否 | 当 ipc 设备在线状态变化时触发,detail = { online }, online: true 表示在线, online: false 表示离线或断电 |
45
+ | onInitdone | eventhandle | | 否 | 初始化完成时触发 |
46
+ | onZoomchange | eventhandle | | 否 | 视频缩放比例及当前倍数变化,detail = { zoomLevel }, zoomLevel 为缩放比例 |
47
+ | onVideotap | eventhandle | | 否 | 点击视频时触发 |
48
+ | onError | eventhandle | | 否 | 当状态异层时触发 error 事件,detail = { "errCode": 错误码 , "errMsg": 错误描述 }, 错误码见下表 |
49
49
 
50
50
  **错误码**
51
51
 
@@ -0,0 +1,2 @@
1
+ declare const Map: () => JSX.Element;
2
+ export default Map;
package/lib/Map/Map.js ADDED
@@ -0,0 +1,7 @@
1
+ import React from 'react'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
2
+
3
+ var Map = function () {
4
+ return /*#__PURE__*/React.createElement("div", null, "web\u7AEF\u6682\u672A\u5B9E\u73B0");
5
+ };
6
+
7
+ export default Map;
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { MapProps } from '@ray-js/adapter';
3
+ declare const Map: React.FC<MapProps>;
4
+ export default Map;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { Map as RemaxMap } from '@ray-js/adapter';
3
+
4
+ var Map = function (props) {
5
+ return /*#__PURE__*/React.createElement(RemaxMap, props);
6
+ };
7
+
8
+ export default Map;
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { MapProps } from '@ray-js/adapter';
3
+ declare const Map: React.FC<MapProps>;
4
+ export default Map;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { Map as RemaxMap } from '@ray-js/adapter';
3
+
4
+ var Map = function (props) {
5
+ return /*#__PURE__*/React.createElement(RemaxMap, props);
6
+ };
7
+
8
+ export default Map;
@@ -0,0 +1,3 @@
1
+ import Map from './Map';
2
+ export type { MapProps } from '@ray-js/adapter';
3
+ export default Map;
@@ -0,0 +1,2 @@
1
+ import Map from './Map';
2
+ export default Map;
@@ -0,0 +1,126 @@
1
+ ---
2
+ nav:
3
+ title: 组件
4
+ path: /components
5
+ group:
6
+ title: 视图容器
7
+ hide: true
8
+ ---
9
+
10
+ ## map
11
+
12
+ > 基础库 2.0.12 开始支持, 低版本需做兼容处理。依赖 **MapKit** 插件, 插件版本 >= 2.2.2。
13
+
14
+ ## 导入
15
+
16
+ ```js
17
+ import { Map } from '@ray-js/components'
18
+ ```
19
+
20
+ 地图。相关 API:[ty.createMapContext](https://developer.tuya.com/cn/miniapp/api/media/map/create-map-context)。这是基于异层渲染的原生组件, 请注意 [原生组件使用限制](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
21
+
22
+ ### 属性说明
23
+
24
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 |
25
+ | --- | --- | --- | --- | --- |
26
+ | longitude | number | | 是 | 中心经度 |
27
+ | latitude | number | | 是 | 中心纬度 |
28
+ | scale | number | 16 | 否 | 缩放级别,取值范围为 4-19 |
29
+ | min-scale | number | 4 | 否 | 最小缩放级别 |
30
+ | max-scale | number | 19 | 否 | 最大缩放级别 |
31
+ | markers | `Array<marker>` | | 否 | 标记点 |
32
+ | polyline | `Array.<polyline>` | | 否 | 路线 |
33
+ | circles | `Array.<circle>` | | 否 | 圆 |
34
+ | polygons | `Array.<polygon>` | | 否 | 多边形 |
35
+ | border-width | number | 0 | 否 | 边框的宽度, 单位 px |
36
+ | border-style | string | solid | 否 | 边框的样式, 可选值: solid 和 dashed |
37
+ | border-color | string | #ffffff | 否 | 边框的颜色, 必须为十六进制格式 |
38
+ | border-radius | number | 0 | 否 | 边框的圆角, 单位 px |
39
+ | border-radius-top-left | number | | 否 | 边框的左上角圆角大小, 单位 px |
40
+ | border-radius-top-right | number | | 否 | 边框的右上角圆角大小, 单位 px |
41
+ | border-radius-bottom-left | number | | 否 | 边框的左下角圆角大小, 单位 px |
42
+ | border-radius-bottom-right | number | | 否 | 边框的右下角圆角大小, 单位 px |
43
+ | background-color | string | #ffffff | 否 | 背景颜色, 必须为十六进制格式 |
44
+ | onMarkertap | eventhandle | | 否 | 点击标记点时触发,e.detail = {markerId} |
45
+ | onCallouttap | eventhandle | | 否 | 点击标记点对应的气泡时触发 e.detail = {markerId} |
46
+ | onRegionchange | eventhandle | | 否 | 视野发生变化时触发 |
47
+ | onInitdone | eventhandle | | 否 | 初始化完成时触发 |
48
+
49
+ ### regionchange 返回值
50
+
51
+ 视野改变时,regionchange 会触发两次,返回的 type 值分别为 begin 和 end。
52
+
53
+ ### marker
54
+
55
+ 标记点用于在地图上显示标记的位置。
56
+
57
+ | 属性名 | 说明 | 类型 | 必填 | 备注 |
58
+ | --- | --- | --- | --- | --- |
59
+ | id | 标记点 ID | number | 是 | marker 点击事件回调会返回此 id。 |
60
+ | longitude | 经度 | number | 是 | 浮点数,范围 -180 ~ 180 |
61
+ | latitude | 纬度 | number | 是 | 浮点数,范围 -90 ~ 90 |
62
+ | title | 标注点名 | string | 否 | 点击时显示,callout 存在时将被忽略 |
63
+ | styleId | 气泡样式类型 ID | string | 否 | 由原生实现的 marker 样式类型 id |
64
+ | callout | 标记点上方的气泡窗口数据源 | object | 否 | 支持的属性见下表,可识别换行符。存在 styleId 时,根据所选样式类型传入属性 |
65
+ | iconPath | 显示的图标 | string | 是 | 项目目录下的图片路径,支持网络路径、代码包路径 |
66
+ | rotate | 旋转角度 | number | 否 | 顺时针旋转的角度,范围 0 ~ 360,默认为 0 |
67
+ | width | 标注图标宽度 | number/string | 否 | 默认为图片实际宽度 |
68
+ | height | 标注图标高度 | number/string | 否 | 默认为图片实际高度 |
69
+
70
+ ### marker 上的气泡 callout
71
+
72
+ | 属性名 | 说明 | 类型 |
73
+ | ------------ | ----------------------------------------- | ------ |
74
+ | content | 文本 | string |
75
+ | color | 文本颜色 | string |
76
+ | fontSize | 文字大小 | number |
77
+ | borderRadius | 边框圆角 | number |
78
+ | borderWidth | 边框宽度 | number |
79
+ | borderColor | 边框颜色 | string |
80
+ | bgColor | 背景色 | string |
81
+ | padding | 文本边缘留白 | number |
82
+ | textAlign | 文本对齐方式。有效值: left, right, center | string |
83
+ | anchorX | 横向偏移量,向右为正数 | number |
84
+ | anchorY | 纵向偏移量,向下为正数 | number |
85
+
86
+ ### polyline
87
+
88
+ 指定一系列坐标点,从数组第一项连线至最后一项。
89
+
90
+ | 属性名 | 说明 | 类型 | 必填 | 备注 |
91
+ | ---------- | ---------- | ------- | ---- | ----------------------------- |
92
+ | points | 经纬度数组 | array | 是 | [{latitude: 0, longitude: 0}] |
93
+ | color | 线的颜色 | string | 否 | 十六进制 |
94
+ | width | 线的宽度 | number | 否 | |
95
+ | dottedLine | 是否虚线 | boolean | 否 | 默认 false |
96
+
97
+ ### circle
98
+
99
+ 在地图上显示圆
100
+
101
+ | 属性名 | 说明 | 类型 | 必填 | 备注 |
102
+ | ----------- | ---------- | ------ | ---- | ----------------------- |
103
+ | latitude | 纬度 | number | 是 | 浮点数,范围 -90 ~ 90 |
104
+ | longitude | 经度 | number | 是 | 浮点数,范围 -180 ~ 180 |
105
+ | color | 描边的颜色 | string | 否 | 十六进制 |
106
+ | fillColor | 填充颜色 | string | 否 | 十六进制 |
107
+ | radius | 半径 | number | 是 | |
108
+ | strokeWidth | 描边的宽度 | number | 否 | |
109
+
110
+ ### polygon
111
+
112
+ 指定一系列坐标点,根据 points 坐标数据生成闭合多边形
113
+
114
+ | 属性名 | 说明 | 类型 | 必填 | 备注 |
115
+ | ----------- | ---------- | ------ | ---- | ----------------------------- |
116
+ | points | 经纬度数组 | array | 是 | [{latitude: 0, longitude: 0}] |
117
+ | strokeWidth | 描边的宽度 | number | 否 | |
118
+ | strokeColor | 描边的颜色 | string | 否 | 十六进制 |
119
+ | fillColor | 填充颜色 | string | 否 | 十六进制 |
120
+
121
+ ### Bug & Tip
122
+
123
+ 1. tip:地图组件的经纬度必填, 如果不填经纬度则默认值是北京的经纬度。
124
+ 2. tip:开发者工具上是通过 WebView 模拟的与真机存在差异,请以真机效果为主。
125
+ 3. tip:相关原理请参考 [基于异层渲染的原生组件](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
126
+ 4. tip:请注意 [原生组件使用限制](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
@@ -0,0 +1,2 @@
1
+ declare const NativeVideo: () => JSX.Element;
2
+ export default NativeVideo;
@@ -0,0 +1,7 @@
1
+ import React from 'react'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
2
+
3
+ var NativeVideo = function () {
4
+ return /*#__PURE__*/React.createElement("div", null, "web\u7AEF\u6682\u672A\u5B9E\u73B0");
5
+ };
6
+
7
+ export default NativeVideo;
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { NativeVideoProps } from '@ray-js/adapter';
3
+ declare const NativeVideo: React.FC<NativeVideoProps>;
4
+ export default NativeVideo;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { NativeVideo as RemaxNativeVideo } from '@ray-js/adapter';
3
+
4
+ var NativeVideo = function (props) {
5
+ return /*#__PURE__*/React.createElement(RemaxNativeVideo, props);
6
+ };
7
+
8
+ export default NativeVideo;
@@ -0,0 +1,2 @@
1
+ declare function NativeVideo(): JSX.Element;
2
+ export default NativeVideo;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { View } from '@ray-js/components'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
3
+
4
+ function NativeVideo() {
5
+ return /*#__PURE__*/React.createElement(View, null, "\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u7AEF\u6682\u672A\u5B9E\u73B0");
6
+ }
7
+
8
+ export default NativeVideo;
@@ -0,0 +1,3 @@
1
+ import NativeVideo from './NativeVideo';
2
+ export type { NativeVideoProps } from '@ray-js/adapter';
3
+ export default NativeVideo;
@@ -0,0 +1,2 @@
1
+ import NativeVideo from './NativeVideo';
2
+ export default NativeVideo;
@@ -0,0 +1,74 @@
1
+ ---
2
+ nav:
3
+ title: 组件
4
+ path: /components
5
+ group:
6
+ title: 视图容器
7
+ hide: true
8
+ ---
9
+
10
+ ## native-video
11
+
12
+ > 基础库 2.5.0 开始支持, 低版本需做兼容处理。
13
+
14
+ ## 导入
15
+
16
+ ```js
17
+ import { NativeVideo } from '@ray-js/components'
18
+ ```
19
+
20
+ 视频。相关 API: [ty.createNativeVideoContext](https://developer.tuya.com/cn/miniapp/api/media/native-video/create-native-video-context)。这是基于异层渲染的原生组件, 请注意 [原生组件使用限制](https://developer.tuya.com/cn/miniapp/ /component/native-component/native-component)。
21
+
22
+ | 属性 | 类型 | 默认值 | 必填 | 说明 |
23
+ | --- | --- | --- | --- | --- |
24
+ | src | string | | 是 | 要播放视频的资源地址,支持网络路径; 注意分区部署情况下,视频是否支持访问 |
25
+ | duration | number | | 否 | 指定视频时长,单位秒 s |
26
+ | controls | boolean | true | 否 | 是否显示默认播放控件(播放/暂停按钮、播放进度、时间) |
27
+ | autoplay | boolean | false | 否 | 是否自动播放 |
28
+ | loop | boolean | false | 否 | 是否循环播放 |
29
+ | muted | boolean | false | 否 | 是否静音播放 |
30
+ | initial-time | number | 0 | 否 | 指定视频初始播放位置 |
31
+ | show-fullscreen-btn | boolean | true | 否 | 是否显示全屏按钮 |
32
+ | show-play-btn | boolean | true | 否 | 是否显示视频底部控制栏的播放按钮 |
33
+ | show-center-play-btn | boolean | true | 否 | 是否显示视频中间的播放按钮 |
34
+ | object-fit | string | contain | 否 | 当视频大小与 video 容器大小不一致时,视频的表现形式 |
35
+ | poster | string | | 否 | 视频封面的图片网络资源地址 |
36
+ | show-mute-btn | boolean | false | 否 | 是否显示静音按钮 |
37
+ | border-width | number | 0 | 否 | 边框的宽度, 单位 px |
38
+ | border-style | string | solid | 否 | 边框的样式, 可选值: solid 和 dashed |
39
+ | border-color | string | #ffffff | 否 | 边框的颜色, 必须为十六进制格式 |
40
+ | border-radius | number | 0 | 否 | 边框的圆角, 单位 px |
41
+ | border-radius-top-left | number | | 否 | 边框的左上角圆角大小, 单位 px |
42
+ | border-radius-top-right | number | | 否 | 边框的右上角圆角大小, 单位 px |
43
+ | border-radius-bottom-left | number | | 否 | 边框的左下角圆角大小, 单位 px |
44
+ | border-radius-bottom-right | number | | 否 | 边框的右下角圆角大小, 单位 px |
45
+ | background-color | string | #ffffff | 否 | 背景颜色, 必须为十六进制格式 |
46
+ | onPlay | eventhandle | | 否 | 当开始/继续播放时触发 play 事件 |
47
+ | onPause | eventhandle | | 否 | 当暂停播放时触发 pause 事件 |
48
+ | onEnded | eventhandle | | 否 | 当播放到末尾时触发 ended 事件 |
49
+ | onTimeupdate | eventhandle | | 否 | 播放进度变化时触发,event.detail = {currentTime, duration} 。 |
50
+ | onFullscreenchange | eventhandle | | 否 | 视频进入和退出全屏时触发,event.detail = {fullScreen, direction},direction 有效值为 vertical 或 horizontal |
51
+ | onWaiting | eventhandle | | 否 | 视频出现缓冲时触发 |
52
+ | onError | eventhandle | | 否 | 视频播放出错时触发 |
53
+ | onProgress | eventhandle | | 否 | 加载进度变化时触发,只支持一段加载。event.detail = {buffered},百分比 |
54
+ | onLoadedmetadata | eventhandle | | 否 | 视频元数据加载完成时触发。event.detail = {width, height, duration} |
55
+ | onControlstoggle | eventhandle | | 否 | 切换 controls 显示隐藏时触发。event.detail = {show} |
56
+ | onSeekcomplete | eventhandler | | 否 | seek 完成时触发 (position iOS 单位 s, Android 单位 ms) |
57
+ | |
58
+
59
+ #### object-fit 的合法值
60
+
61
+ | 值 | 说明 |
62
+ | ------- | ---- |
63
+ | contain | 包含 |
64
+ | fill | 填充 |
65
+ | cover | 覆盖 |
66
+
67
+ ### Bug & Tip
68
+
69
+ 1. tip:`native-video` 默认宽度 300px、高度 225px,可通过 tyss 设置宽高。
70
+ 2. tip:相关原理请参考 [基于异层渲染的原生组件](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
71
+ 3. tip:请注意 [原生组件使用限制](https://developer.tuya.com/cn/miniapp/component/native-component/native-component)。
72
+ 4. tip:`native-video` 支持三种视频格式:MP4。
73
+
74
+ - MP4 = MPEG 4 文件使用 H264 视频编解码器和 AAC 音频编解码器
@@ -0,0 +1,2 @@
1
+ declare const WebView: () => JSX.Element;
2
+ export default WebView;
@@ -0,0 +1,7 @@
1
+ import React from 'react'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
2
+
3
+ var WebView = function () {
4
+ return /*#__PURE__*/React.createElement("div", null, "web\u7AEF\u6682\u672A\u5B9E\u73B0");
5
+ };
6
+
7
+ export default WebView;
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { WebViewProps } from '@ray-js/adapter';
3
+ declare const WebView: React.FC<WebViewProps>;
4
+ export default WebView;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { WebView as RemaxWebView } from '@ray-js/adapter';
3
+
4
+ var WebView = function (props) {
5
+ return /*#__PURE__*/React.createElement(RemaxWebView, props);
6
+ };
7
+
8
+ export default WebView;
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { WebViewProps } from '@ray-js/adapter';
3
+ declare const WebView: React.FC<WebViewProps>;
4
+ export default WebView;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { WebView as RemaxWebView } from '@ray-js/adapter';
3
+
4
+ var WebView = function (props) {
5
+ return /*#__PURE__*/React.createElement(RemaxWebView, props);
6
+ };
7
+
8
+ export default WebView;
@@ -0,0 +1,3 @@
1
+ import WebView from './WebView';
2
+ export type { WebViewProps } from '@ray-js/adapter';
3
+ export default WebView;
@@ -0,0 +1,2 @@
1
+ import WebView from './WebView';
2
+ export default WebView;
@@ -0,0 +1,33 @@
1
+ ---
2
+ nav:
3
+ title: 组件
4
+ path: /components
5
+ group:
6
+ title: 视图容器
7
+ hide: true
8
+ ---
9
+
10
+ ## web-view
11
+
12
+ > 基础库 2.6.0 开始支持, 低版本需做兼容处理。
13
+
14
+ ## 导入
15
+
16
+ ```js
17
+ import { WebView } from '@ray-js/components'
18
+ ```
19
+
20
+ ### 功能描述
21
+
22
+ 承载网页的容器。会自动铺满整个小程序页面。
23
+
24
+ > 注意:当页面存在 web-view 标签时,其他标签将不展示,且不支持设置任何样式!
25
+
26
+ ### 属性说明
27
+
28
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 |
29
+ | --- | --- | --- | --- | --- |
30
+ | src | string | | 否 | webview 指向网页的链接。需登录[小程序管理后台](https://iot.tuya.com/miniapp)配置业务域名。 |
31
+ | onMessage | eventhandle | | 否 | 网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data },data 是多次 postMessage 的参数组成的数组 |
32
+ | onLoad | eventhandle | | 否 | 网页加载成功时候触发此事件。e.detail = { src } |
33
+ | onError | eventhandle | | 否 | 网页加载失败的时候触发此事件。e.detail = { url, fullUrl },其中 fullUrl 为加载失败时的完整 url |
package/lib/index.d.ts CHANGED
@@ -31,3 +31,7 @@ export { default as PickerViewColumn } from './PickerViewColumn';
31
31
  export { default as PageContainer } from './PageContainer';
32
32
  export { default as IpcPlayer } from './IpcPlayer';
33
33
  export { default as CoverView } from './CoverView';
34
+ export { default as NativeVideo } from './NativeVideo';
35
+ export { default as WebView } from './WebView';
36
+ export { default as Map } from './Map';
37
+ export { default as Camera } from './Camera';
package/lib/index.js CHANGED
@@ -30,4 +30,8 @@ export { default as PickerView } from './PickerView';
30
30
  export { default as PickerViewColumn } from './PickerViewColumn';
31
31
  export { default as PageContainer } from './PageContainer';
32
32
  export { default as IpcPlayer } from './IpcPlayer';
33
- export { default as CoverView } from './CoverView';
33
+ export { default as CoverView } from './CoverView';
34
+ export { default as NativeVideo } from './NativeVideo';
35
+ export { default as WebView } from './WebView';
36
+ export { default as Map } from './Map';
37
+ export { default as Camera } from './Camera';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/components",
3
- "version": "0.6.8",
3
+ "version": "0.6.9",
4
4
  "description": "Ray basic components",
5
5
  "keywords": [
6
6
  "ray"
@@ -26,7 +26,7 @@
26
26
  "dependencies": {
27
27
  "@ray-core/macro": "^0.0.x",
28
28
  "@ray-core/wechat": "^0.0.x",
29
- "@ray-js/framework-shared": "^0.6.8",
29
+ "@ray-js/framework-shared": "^0.6.9",
30
30
  "clsx": "^1.1.1",
31
31
  "core-js": "^3.19.1",
32
32
  "hooks": "^0.3.2",
@@ -35,7 +35,7 @@
35
35
  "style-to-object": "^0.3.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@ray-js/cli": "^0.6.8"
38
+ "@ray-js/cli": "^0.6.9"
39
39
  },
40
40
  "maintainers": [
41
41
  {
@@ -43,6 +43,6 @@
43
43
  "email": "tuyafe@tuya.com"
44
44
  }
45
45
  ],
46
- "gitHead": "fc83de18208c48d8323de586f13e3860712c91a3",
46
+ "gitHead": "b069b03dabfc6151fc772a2308243b4b86cb5545",
47
47
  "repository": {}
48
48
  }
@@ -1,47 +0,0 @@
1
- import { BaseProps } from '../types';
2
- import { BaseEvent } from '@ray-js/adapter/src/types/component';
3
- export declare type IpcPlayerEventType = {
4
- type: string;
5
- value?: any;
6
- origin: BaseEvent;
7
- };
8
- export declare type IpcPlayerProps = BaseProps & {
9
- deviceId: string;
10
- autoplay?: boolean;
11
- muted?: boolean;
12
- clarity?: 'normal' | 'hd';
13
- soundMode?: 'speaker' | 'ear';
14
- orientation?: 'vertical' | 'horizontal';
15
- objectFit?: 'contain' | 'fillCrop';
16
- autoPauseIfNavigate?: boolean;
17
- autoPauseIfOpenNative?: boolean;
18
- rotateZ?: number;
19
- scalable?: boolean;
20
- scaleMultiple?: number;
21
- ptzControllable?: boolean;
22
- borderWidth?: number | string;
23
- borderStyle?: 'solid' | 'dashed';
24
- borderColor?: string;
25
- borderRadius?: number | string;
26
- backgroundColor?: string;
27
- onConnectchange?: (event: {
28
- state: number;
29
- }) => void;
30
- onPreviewchange?: (event: {
31
- state: number;
32
- }) => void;
33
- onOnlinechange?: (event: {
34
- online: boolean;
35
- }) => void;
36
- onInitdone?: () => void;
37
- onZoomchange?: (event: {
38
- zoomLevel: number;
39
- }) => void;
40
- onVideotap?: () => void;
41
- onError?: (event: {
42
- errCode: number | string;
43
- errMsg: string;
44
- }) => void;
45
- updateLayout?: any;
46
- };
47
- export declare const defaultIpcPlayerProps: Partial<IpcPlayerProps>;
@@ -1,20 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- export var defaultIpcPlayerProps = {
3
- deviceId: '',
4
- autoplay: false,
5
- clarity: 'normal',
6
- soundMode: 'speaker',
7
- orientation: 'vertical',
8
- objectFit: 'contain',
9
- autoPauseIfNavigate: true,
10
- autoPauseIfOpenNative: true,
11
- rotateZ: 0,
12
- scalable: true,
13
- scaleMultiple: 0,
14
- ptzControllable: true,
15
- borderWidth: 0,
16
- borderStyle: 'solid',
17
- borderColor: '#ffffff',
18
- borderRadius: 0,
19
- backgroundColor: '#ffffff'
20
- };