File size: 2,243 Bytes
e841ba5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e08e97a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Application

应用的根组件,该组件包含了所有`modelscope_studio`的组件依赖,需要确保所有从`modelscope_studio`导出的组件都被其包裹,否则页面将会无法成功预览。

该组件还可以监听用户页面的生命周期,并获取当前用户的环境信息,您可以

- 获取当前用户的语言、页面主题、user agent 和屏幕状态。
- 监听页面行为并触发相应事件(页面加载、尺寸变化、页面关闭等)。

另外,该组件还提供了`custom`事件,您可以通过在任意 Javascript 函数中调用`window.ms_globals.dispatch`主动向 Python 端发送事件,在 Python 端可以通过`ms.Application.custom`事件接收。

## 示例

<demo name="basic"></demo>

<demo name="language_adaptation" title="自动适配用户语言环境"></demo>

<demo name="theme_adaptation" title="根据用户界面主题返回不同权重内容"></demo>

<demo name="custom_event" title="发送自定义事件"></demo>

## API

### 属性

| 属性  | 类型                | 默认值 | 描述     |
| ----- | ------------------- | ------ | -------- |
| value | ApplicationPageData | None   | 页面数据 |

### 事件

| 事件                              | 描述                                                                         |
| --------------------------------- | ---------------------------------------------------------------------------- |
| `ms.Application.mount(fn, ···)`   | 当页面加载时触发。                                                           |
| `ms.Application.resize(fn, ···)`  | 当页面尺寸变化时触发。                                                       |
| `ms.Application.unmount(fn, ···)` | 当页面卸载时触发。                                                           |
| `ms.Application.custom(fn, ···)`  | 当用户在 JavaScript 中调用`window.ms_globals.dispatch`抛出自定义事件时触发。 |

### 类型

```python

class ApplicationPageScreenData(GradioModel):
    width: float
    height: float
    scrollX: float
    scrollY: float


class ApplicationPageData(GradioModel):
    screen: ApplicationPageScreenData
    language: str
    theme: str
    userAgent: str
```