1 | import { ComponentType } from 'react'
|
2 | import { StandardProps, CommonEventFunction } from './common'
|
3 | interface PageMetaProps extends StandardProps {
|
4 | /** 下拉背景字体、loading 图的样式,仅支持 dark 和 light
|
5 | * @supported weapp
|
6 | */
|
7 | backgroundTextStyle?: string
|
8 | /** 窗口的背景色,必须为十六进制颜色值
|
9 | * @supported weapp, alipay, harmony
|
10 | */
|
11 | backgroundColor?: string
|
12 | /** 顶部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持
|
13 | * @supported weapp, alipay, harmony
|
14 | */
|
15 | backgroundColorTop?: string
|
16 | /** 底部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持
|
17 | * @supported weapp, alipay, harmony
|
18 | */
|
19 | backgroundColorBottom?: string
|
20 | /** 滚动位置,可以使用 px 或者 rpx 为单位,在被设置时,页面会滚动到对应位置
|
21 | * @default ""
|
22 | * @supported weapp, alipay, harmony
|
23 | */
|
24 | scrollTop?: string
|
25 | /** 滚动动画时长
|
26 | * @default 300
|
27 | * @supported weapp, alipay, harmony
|
28 | */
|
29 | scrollDuration?: number
|
30 | /** 页面根节点样式,页面根节点是所有页面节点的祖先节点,相当于 HTML 中的 body 节点
|
31 | * @default ""
|
32 | * @supported weapp, alipay
|
33 | */
|
34 | pageStyle?: string
|
35 | /** 页面的根字体大小,页面中的所有 rem 单位,将使用这个字体大小作为参考值,即 1rem 等于这个字体大小
|
36 | * @default ""
|
37 | * @supported weapp, alipay
|
38 | */
|
39 | rootFontSize?: string
|
40 | /** 页面内容的背景色,用于页面中的空白部分和页面大小变化 resize 动画期间的临时空闲区域
|
41 | * @supported weapp, alipay, harmony
|
42 | */
|
43 | rootBackgroundColor?: string
|
44 | /** 页面 page 的字体大小,可以设置为 system ,表示使用当前用户设置的微信字体大小
|
45 | * @supported weapp, alipay
|
46 | */
|
47 | pageFontSize?: string
|
48 | /** 页面的方向,可为 auto portrait 或 landscape
|
49 | * @supported weapp
|
50 | */
|
51 | pageOrientation?: string
|
52 | /** 页面尺寸变化时会触发 resize 事件
|
53 | * @supported weapp
|
54 | */
|
55 | onResize?: CommonEventFunction<PageMetaProps.onResizeEventDetail>
|
56 | /** 页面滚动时会触发 scroll 事件
|
57 | * @supported weapp, alipay
|
58 | */
|
59 | onScroll?: CommonEventFunction<PageMetaProps.onScrollEventDetail>
|
60 | /** 如果通过改变 scroll-top 属性来使页面滚动,页面滚动结束后会触发 scrolldone 事件
|
61 | * @supported weapp
|
62 | */
|
63 | onScrollDone?: CommonEventFunction
|
64 | }
|
65 | declare namespace PageMetaProps {
|
66 | interface onResizeEventDetail {
|
67 | /** 设备方向 */
|
68 | deviceOrientation?: 'portrait' | 'landscape'
|
69 | /** 窗口尺寸 */
|
70 | size: resizeType
|
71 | }
|
72 | /** 窗口尺寸类型 */
|
73 | interface resizeType {
|
74 | /** 窗口宽度 */
|
75 | windowWidth: number
|
76 | /** 窗口高度 */
|
77 | windowHeight: number
|
78 | /** 屏幕宽度 */
|
79 | screenWidth?: number
|
80 | /** 屏幕高度 */
|
81 | screenHeight?: number
|
82 | }
|
83 | interface onScrollEventDetail {
|
84 | scrollTop: number
|
85 | }
|
86 | }
|
87 | /** 页面属性配置节点,用于指定页面的一些属性、监听页面事件。只能是页面内的第一个节点。可以配合 navigation-bar 组件一同使用。
|
88 | * 通过这个节点可以获得类似于调用 Taro.setBackgroundTextStyle Taro.setBackgroundColor 等接口调用的效果。
|
89 | *
|
90 | * :::info
|
91 | * Taro v3.6.19 开始支持
|
92 | * 开发者需要在页面配置里添加:`enablePageMeta: true`
|
93 | * :::
|
94 | *
|
95 | * @supported weapp, alipay, harmony
|
96 | * @example_react
|
97 | * ```tsx
|
98 | * // page.config.ts
|
99 | * export default definePageConfig({ enablePageMeta: true, ... })
|
100 | *
|
101 | * // page.tsx
|
102 | * function Index () {
|
103 | * return (
|
104 | * <View>
|
105 | * <PageMeta
|
106 | * pageStyle={myPageStyle}
|
107 | * onScroll={handleScroll}
|
108 | * >
|
109 | * <NavigationBar title={title} />
|
110 | * </PageMeta>
|
111 | * </View>
|
112 | * )
|
113 | * }
|
114 | * ```
|
115 | * @example_vue
|
116 | * ```html
|
117 | * <!-- page.config.ts -->
|
118 | * <!-- export default definePageConfig({ enablePageMeta: true, ... }) -->
|
119 | *
|
120 | * <!-- page.vue -->
|
121 | * <template>
|
122 | * <page-meta
|
123 | * :page-style="myPageStyle"
|
124 | * `@scroll="handleScroll"
|
125 | * >
|
126 | * <navigation-bar :title="title" />
|
127 | * </page-meta>
|
128 | * </template>
|
129 | * ```
|
130 | * @see https://developers.weixin.qq.com/miniprogram/dev/component/page-meta.html
|
131 | */
|
132 | declare const PageMeta: ComponentType<PageMetaProps>
|
133 | export { PageMeta, PageMetaProps }
|