page.d.ts 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. declare namespace Page {
  2. interface CustomShareContent {
  3. /**
  4. * 转发标题。默认值:当前应用名称
  5. */
  6. title?: string;
  7. /**
  8. * 转发路径,必须是以 / 开头的完整路径。默认值:当前页面 path
  9. */
  10. path?: string;
  11. /**
  12. * 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4,默认值:使用默认截图
  13. */
  14. imageUrl?: string;
  15. }
  16. interface ShareTimelineContent {
  17. /**
  18. * 自定义标题。默认值:当前小程序名称
  19. */
  20. title?: string;
  21. /**
  22. * 自定义页面路径中携带的参数
  23. */
  24. path?: string;
  25. /**
  26. * 自定义图片路径,可以是本地文件或者网络图片。支持 PNG 及 JPG,显示图片长宽比是 1:1。
  27. */
  28. imageUrl?: string;
  29. }
  30. interface PageScrollOption {
  31. /**
  32. * 页面在垂直方向已滚动的距离(单位 px)
  33. */
  34. scrollTop: number;
  35. }
  36. interface ShareAppMessageOption {
  37. /**
  38. * 转发事件来源。
  39. * 可选值:
  40. * - `button`:页面内转发按钮;
  41. * - `menu`:右上角转发菜单。
  42. */
  43. from: "button" | "menu";
  44. /**
  45. * 如果 `from` 值是 `button`,则 `target` 是触发这次转发事件的 `button`,否则为 `undefined`
  46. */
  47. target: any;
  48. /**
  49. * 页面中包含 `<web-view>` 组件时,返回当前 `<web-view>` 的 url
  50. */
  51. webViewUrl?: string;
  52. }
  53. interface AddToFavoritesOption {
  54. /**
  55. * 页面中包含 `<web-view>` 组件时,返回当前 `<web-view>` 的 url
  56. */
  57. webviewUrl: string
  58. }
  59. interface CustomFavoritesContent {
  60. /**
  61. * 自定义标题,默认值:页面标题或账号名称
  62. */
  63. title?: string;
  64. /**
  65. * 自定义 query 字段
  66. */
  67. path?: string;
  68. /**
  69. * 自定义图片,显示图片长宽比为 1:1
  70. */
  71. imageUrl?: string;
  72. }
  73. interface TabItemTapOption {
  74. /**
  75. * 被点击 tabItem 的序号,从0开始
  76. */
  77. index: string;
  78. /**
  79. * 被点击 tabItem 的页面路径
  80. */
  81. pagePath: string;
  82. /**
  83. * 被点击 tabItem 的按钮文字
  84. */
  85. text: string;
  86. }
  87. interface NavigationBarButtonTapOption {
  88. /**
  89. * 原生标题栏按钮数组的下标
  90. */
  91. index: string;
  92. }
  93. interface BackPressOption {
  94. /**
  95. * - backbutton 顶部导航栏左边的返回按钮或 Android 实体返回键
  96. * - navigateBack 返回 API,即 uni.navigateBack()
  97. */
  98. from: 'backbutton' | 'navigateBack';
  99. }
  100. interface NavigationBarSearchInputEvent {
  101. /**
  102. * 搜索输入框输入内容
  103. */
  104. text: string;
  105. }
  106. interface PageInstanceBaseProps<D extends AnyObject = any> {
  107. /**
  108. * 到当前页面的路径,类型为 `String`
  109. */
  110. route?: string;
  111. }
  112. interface PageInstance<D extends AnyObject = any, T extends AnyObject = any> extends PageInstanceBaseProps<D> {
  113. /**
  114. * 生命周期回调 监听页面初始化
  115. *
  116. * 页面初始化时触发。一个页面只会调用一次,可以在 onInit 的参数中获取打开当前页面路径中的参数。
  117. * @param query 打开当前页面路径中的参数
  118. */
  119. onInit?(query?: AnyObject): void;
  120. /**
  121. * 生命周期回调 监听页面加载
  122. *
  123. * 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
  124. * @param query 打开当前页面路径中的参数
  125. */
  126. onLoad?(query?: AnyObject): void;
  127. /**
  128. * 生命周期回调 监听页面显示
  129. *
  130. * 页面显示/切入前台时触发。
  131. */
  132. onShow?(): void;
  133. /**
  134. * 生命周期回调 监听页面初次渲染完成
  135. *
  136. * 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
  137. */
  138. onReady?(): void;
  139. /**
  140. * 生命周期回调 监听页面隐藏
  141. *
  142. * 页面隐藏/切入后台时触发。 如 `navigateTo` 或底部 `tab` 切换到其他页面,应用切入后台等。
  143. */
  144. onHide?(): void;
  145. /**
  146. * 生命周期回调 监听页面卸载
  147. *
  148. * 页面卸载时触发。如 `redirectTo` 或 `navigateBack` 到其他页面时。
  149. */
  150. onUnload?(): void;
  151. /**
  152. * 监听用户下拉动作
  153. * - 需要在 `pages.json` 的页面配置中开启 `enablePullDownRefresh` 。
  154. * - 可以通过 `uni.startPullDownRefresh` 触发下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
  155. * - 当处理完数据刷新后,`uni.stopPullDownRefresh` 可以停止当前页面的下拉刷新。
  156. */
  157. onPullDownRefresh?(): void;
  158. /**
  159. * 页面上拉触底事件的处理函数
  160. * - 可以在 `pages.json` 的页面配置中设置触发距离 `onReachBottomDistance` 。
  161. * - 在触发距离内滑动期间,本事件只会被触发一次。
  162. */
  163. onReachBottom?(): void;
  164. /**
  165. * 用户点击右上角转发
  166. *
  167. * 监听用户点击页面内转发按钮(`<button>` 组件 `open-type="share"`)或右上角菜单“转发”按钮的行为,并自定义转发内容。
  168. * @param options 分享发起来源参数
  169. * @return 转发内容
  170. */
  171. onShareAppMessage?(options: ShareAppMessageOption): CustomShareContent;
  172. /**
  173. * 用户点击右上角转发到朋友圈
  174. *
  175. * 监听右上角菜单“分享到朋友圈”按钮的行为,并自定义发享内容。
  176. */
  177. onShareTimeline?(): ShareTimelineContent;
  178. /**
  179. * 用户点击右上角收藏
  180. *
  181. * 监听用户点击右上角菜单“收藏”按钮的行为,并自定义收藏内容。
  182. */
  183. onAddToFavorites?(options: AddToFavoritesOption): CustomFavoritesContent;
  184. /**
  185. * 页面滚动触发事件的处理函数
  186. *
  187. * 监听用户滑动页面事件。
  188. * @param options 页面滚动参数
  189. */
  190. onPageScroll?(options: PageScrollOption): void;
  191. /**
  192. * 页面尺寸改变时触发
  193. * @param options 页面滚动参数
  194. */
  195. onResize?(options: PageScrollOption): void;
  196. /**
  197. * 当前是 tab 页时,点击 tab 时触发
  198. * @param options tab 点击参数
  199. */
  200. onTabItemTap?(options: TabItemTapOption): void;
  201. /**
  202. * 监听原生标题栏按钮点击事件
  203. * @param options tab 点击参数
  204. */
  205. onNavigationBarButtonTap?(options: NavigationBarButtonTapOption): void;
  206. /**
  207. * 监听页面返回
  208. * @param options tab 点击参数
  209. * @return 返回 `true` 时阻止页面返回
  210. */
  211. onBackPress?(options: BackPressOption): any;
  212. /**
  213. * 监听原生标题栏搜索输入框输入内容变化事件
  214. */
  215. onNavigationBarSearchInputChanged?(event: NavigationBarSearchInputEvent): void;
  216. /**
  217. * 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。
  218. */
  219. onNavigationBarSearchInputConfirmed?(event: NavigationBarSearchInputEvent): void;
  220. /**
  221. * 监听原生标题栏搜索输入框点击事件
  222. */
  223. onNavigationBarSearchInputClicked?(): void;
  224. }
  225. type PageConstructor = <T extends AnyObject & PageInstance>(
  226. options: PageInstance<AnyObject, T> & T,
  227. ) => void;
  228. type GetCurrentPages = <T extends AnyObject = {}>() => Array<PageInstance<AnyObject, T> & T>;
  229. }
  230. declare const getCurrentPages: Page.GetCurrentPages;