首页 > 其他分享 >uni-app Pages.json配置

uni-app Pages.json配置

时间:2023-01-12 13:34:14浏览次数:56  
标签:app Object 程序 H5 json mp uni pages 页面

https://uniapp.dcloud.net.cn/collocation/pages.html

pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。

它类似微信小程序中app.json的页面管理部分。注意定位权限申请等原属于app.json的内容,在uni-app中是在manifest中配置。

#配置项列表

属性类型必填描述平台兼容
globalStyle Object 设置默认页面的窗口表现  
pages Object Array 设置页面路径及窗口表现  
easycom Object 组件自动引入规则 2.5.5+
tabBar Object 设置底部 tab 的表现  
condition Object 启动模式配置  
subPackages Object Array 分包加载配置  
preloadRule Object 分包预下载规则 微信小程序
workers String Worker 代码放置的目录 微信小程序
leftWindow Object 大屏左侧窗口 H5
topWindow Object 大屏顶部窗口 H5
rightWindow Object 大屏右侧窗口 H5
uniIdRouter Object 自动跳转相关配置,新增于HBuilderX 3.5.0  

以下是一个包含了所有配置选项的 pages.json :

{
	"pages": [{
		"path": "pages/component/index",
		"style": {
			"navigationBarTitleText": "组件"
		}
	}, {
		"path": "pages/API/index",
		"style": {
			"navigationBarTitleText": "接口"
		}
	}, {
		"path": "pages/component/view/index",
		"style": {
			"navigationBarTitleText": "view"
		}
	}],
	"condition": { //模式配置,仅开发期间生效
		"current": 0, //当前激活的模式(list 的索引项)
		"list": [{
			"name": "test", //模式名称
			"path": "pages/component/view/index" //启动页面,必选
		}]
	},
	"globalStyle": {
		"navigationBarTextStyle": "black",
		"navigationBarTitleText": "演示",
		"navigationBarBackgroundColor": "#F8F8F8",
		"backgroundColor": "#F8F8F8",
		"usingComponents":{
			"collapse-tree-item":"/components/collapse-tree-item"
		},
		"renderingMode": "seperated", // 仅微信小程序,webrtc 无法正常时尝试强制关闭同层渲染
		"pageOrientation": "portrait", //横屏配置,全局屏幕旋转设置(仅 APP/微信/QQ小程序),支持 auto / portrait / landscape
		"rpxCalcMaxDeviceWidth": 960,
		"rpxCalcBaseDeviceWidth": 375,
		"rpxCalcIncludeWidth": 750
	},
	"tabBar": {
		"color": "#7A7E83",
		"selectedColor": "#3cc51f",
		"borderStyle": "black",
		"backgroundColor": "#ffffff",
		"height": "50px",
		"fontSize": "10px",
		"iconWidth": "24px",
		"spacing": "3px",
    	"iconfontSrc":"static/iconfont.ttf", // app tabbar 字体.ttf文件路径 app 3.4.4+
		"list": [{
			"pagePath": "pages/component/index",
			"iconPath": "static/image/icon_component.png",
			"selectedIconPath": "static/image/icon_component_HL.png",
			"text": "组件",
      		"iconfont": { // 优先级高于 iconPath,该属性依赖 tabbar 根节点的 iconfontSrc
       			"text": "\ue102",
        		"selectedText": "\ue103",
        		"fontSize": "17px",
        		"color": "#000000",
        		"selectedColor": "#0000ff"
      		}
		}, {
			"pagePath": "pages/API/index",
			"iconPath": "static/image/icon_API.png",
			"selectedIconPath": "static/image/icon_API_HL.png",
			"text": "接口"
		}],
		"midButton": {
			"width": "80px",
			"height": "50px",
			"text": "文字",
			"iconPath": "static/image/midButton_iconPath.png",
			"iconWidth": "24px",
			"backgroundImage": "static/image/midButton_backgroundImage.png"
		}
	},
  "easycom": {
    "autoscan": true, //是否自动扫描组件
    "custom": {//自定义扫描规则
      "^uni-(.*)": "@/components/uni-$1.vue"
    }
  },
  "topWindow": {
    "path": "responsive/top-window.vue",
    "style": {
      "height": "44px"
    }
  },
  "leftWindow": {
    "path": "responsive/left-window.vue",
    "style": {
      "width": "300px"
    }
  },
  "rightWindow": {
    "path": "responsive/right-window.vue",
    "style": {
      "width": "300px"
    },
    "matchMedia": {
      "minWidth": 768
    }
  }
}
复制代码

#globalStyle

用于设置应用的状态栏、导航条、标题、窗口背景色等。

属性类型默认值描述平台差异说明
navigationBarBackgroundColor HexColor #F7F7F7 导航栏背景颜色(同状态栏背景色) APP与H5为#F7F7F7,小程序平台请参考相应小程序文档
navigationBarTextStyle String white 导航栏标题颜色及状态栏前景颜色,仅支持 black/white 支付宝小程序不支持,请使用 my.setNavigationBar
navigationBarTitleText String   导航栏标题文字内容  
navigationStyle String default 导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看使用注意 微信小程序 7.0+、百度小程序、H5、App(2.0.3+)
backgroundColor HexColor #ffffff 下拉显示出来的窗口的背景色 微信小程序
backgroundTextStyle String dark 下拉 loading 的样式,仅支持 dark / light 微信小程序
enablePullDownRefresh Boolean false 是否开启下拉刷新,详见页面生命周期  
onReachBottomDistance Number 50 页面上拉触底事件触发时距页面底部距离,单位只支持px,详见页面生命周期  
backgroundColorTop HexColor #ffffff 顶部窗口的背景色(bounce回弹区域) 仅 iOS 平台
backgroundColorBottom HexColor #ffffff 底部窗口的背景色(bounce回弹区域) 仅 iOS 平台
titleImage String   导航栏图片地址(替换当前文字标题),支付宝小程序内必须使用https的图片链接地址 支付宝小程序、H5、APP
transparentTitle String none 导航栏整体(前景、背景)透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明 支付宝小程序、H5、APP
titlePenetrate String NO 导航栏点击穿透 支付宝小程序、H5
pageOrientation String portrait 横屏配置,屏幕旋转设置,仅支持 auto / portrait / landscape 详见 响应显示区域变化 App 2.4.7+、微信小程序、QQ小程序
animationType String pop-in 窗口显示的动画效果,详见:窗口动画 App
animationDuration Number 300 窗口显示动画的持续时间,单位为 ms App
app-plus Object   设置编译到 App 平台的特定样式,配置项参考下方 app-plus App
h5 Object   设置编译到 H5 平台的特定样式,配置项参考下方 H5 H5
mp-alipay Object   设置编译到 mp-alipay 平台的特定样式,配置项参考下方 MP-ALIPAY 支付宝小程序
mp-weixin Object   设置编译到 mp-weixin 平台的特定样式 微信小程序
mp-baidu Object   设置编译到 mp-baidu 平台的特定样式 百度小程序
mp-toutiao Object   设置编译到 mp-toutiao 平台的特定样式 字节跳动小程序
mp-lark Object   设置编译到 mp-lark 平台的特定样式 飞书小程序
mp-qq Object   设置编译到 mp-qq 平台的特定样式 QQ小程序
mp-kuaishou Object   设置编译到 mp-kuaishou 平台的特定样式 快手小程序
mp-jd Object   设置编译到 mp-jd 平台的特定样式 京东小程序
usingComponents Object   引用小程序组件,参考 小程序组件  
renderingMode String   同层渲染,webrtc(实时音视频) 无法正常时尝试配置 seperated 强制关掉同层 微信小程序
leftWindow Boolean true 当存在 leftWindow 时,默认是否显示 leftWindow H5
topWindow Boolean true 当存在 topWindow 时,默认是否显示 topWindow H5
rightWindow Boolean true 当存在 rightWindow 时,默认是否显示 rightWindow H5
rpxCalcMaxDeviceWidth Number 960 rpx 计算所支持的最大设备宽度,单位 px App(vue2 且不含 nvue)、H5(2.8.12+)
rpxCalcBaseDeviceWidth Number 375 rpx 计算使用的基准设备宽度,设备实际宽度超出 rpx 计算所支持的最大设备宽度时将按基准宽度计算,单位 px App(vue2 且不含 nvue)、H5(2.8.12+)
rpxCalcIncludeWidth Number 750 rpx 计算特殊处理的值,始终按实际的设备宽度计算,单位 rpx App(vue2 且不含 nvue)、H5(2.8.12+)
dynamicRpx Boolean false 动态 rpx,屏幕大小变化会重新渲染 rpx App-nvue(vue3 固定值为 true) 3.2.13+
maxWidth Number   单位px,当浏览器可见区域宽度大于maxWidth时,两侧留白,当小于等于maxWidth时,页面铺满;不同页面支持配置不同的maxWidth;maxWidth = leftWindow(可选)+page(页面主体)+rightWindow(可选) H5(2.9.9+)

注意

  • 支付宝小程序使用titleImage时必须使用https的图片链接地址,需要真机调试才能看到效果,支付宝开发者工具内无效果
  • globalStyle中设置的titleImage也会覆盖掉pages->style内的设置文字标题
  • 使用 maxWidth 时,页面内fixed元素需要使用--window-left,--window-right来保证布局位置正确
  • dynamicRpx vue3 nvue页面已移除此配置,升级为横竖屏切换自动rpx,如果不需要可以使用 px

#topWindow

uni-app 2.9+ 新增 leftWindow, topWindow, rightWindow 配置。用于解决宽屏适配问题。

以现有的手机应用为mainWindow,在左、上、右,可以追加新的页面显示窗体。

整体的宽屏适配思路,参考单独的宽屏适配指南

属性类型默认值描述
path String   配置页面路径
style Object   配置页面窗口表现,配置项参考下方 pageStyle
matchMedia Object   配置显示该窗口的规则,配置项参考下方 matchMedia

注意

  • 目前 style 节点仅支持配置 width,height 等 css 样式相关属性
  • 如果需求当存在 topwindow 时,自动隐藏页面的 navigationBar,根据需求不同在App.vue中配置如下 css:
    • 只需要隐藏某个的页面 navigationBar
      /* 隐藏路径为 pages/component/view/view 页面的 navigationBar */
      .uni-app--showtopwindow [data-page="pages/component/view/view"] uni-page-head {
      	display: none;
      }
      
      复制代码
    • 需要隐藏大部分页面的 navigationBar,显示某个页面的 navigationBar
      /* 隐藏所有页面的 navigationBar */
      .uni-app--showtopwindow uni-page-head {
      	display: none;
      }
      
      /* 显示路径为 pages/component/view/view 页面的 navigationBar */
      .uni-app--showtopwindow [data-page="pages/component/view/view"] uni-page-head {
      	display: block;
      }
      
      复制代码

#matchMedia

属性类型默认值描述
minWidth Number 768 当设备可见区域宽度 >= minWidth 时,显示该 window

通过matchMedia的调节,可以自适应在不同屏幕上显示指定的window。

{
  "pages": [
    {
      "path": "pages/login/login",
      "style": {
        "topWindow": false // 当前页面不显示 topWindow
        "leftWindow": false // 当前页面不显示 leftWindow
        "rightWindow": false // 当前页面不显示 rightWindow
      }
    }
  ],
  "topWindow": {
    "path": "responsive/top-window.vue", // 指定 topWindow 页面文件
    "style": {
      "height": "44px"
    }
  },
  "leftWindow": {
    "path": "responsive/left-window.vue", // 指定 leftWindow 页面文件
    "style": {
      "width": "300px"
    }
  },
  "rightWindow": {
    "path": "responsive/right-window.vue", // 指定 rightWindow 页面文件
    "style": {
      "width": "300px" // 页面宽度
    },
    "matchMedia": {
      "minWidth": 768 //生效条件,当窗口宽度大于768px时显示
    }
  }
}
复制代码

案例演示:HBuilderX 2.9.9+,新建项目选择hello uni-app或新闻模板,或直接浏览:https://hellouniapp.dcloud.net.cn/

#leftWindow

topWindow相同

#rightWindow

topWindow相同

窗口通信参考:https://uniapp.dcloud.net.cn/api/window/communication

标签:app,Object,程序,H5,json,mp,uni,pages,页面
From: https://www.cnblogs.com/beichengshiqiao/p/17046387.html

相关文章

  • Oracle使用append对表insert会阻塞表的其他会话DML操作
     Oracle使用append对表insert会阻塞其他会话DML操作 快春节了,抽点时间把NNNNNNN久之前的东西整理记录。insert/*+append*/into会对表持有LOCKED_MODE=6的TM锁,导......
  • Power Apps设置Gallery的参数过滤
      在下拉列表的OnSelect属性中设置:ClearCollect(statusCol,{Name:Blank()});Collect(statusCol,Choices([@'ScrapPartsApplicationOrder'].'OrderStatus状态'));......
  • uni-app 背景图片
    背景图片uni-app 支持使用在css里设置背景图片,使用方式与普通 web 项目大体相同,但需要注意以下几点:支持base64格式图片。支持网络路径图片。小程序不支持在cs......
  • uni-app Flex布局
    样式导入使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。示例代码:<style>@import"../../common/uni.css";......
  • uni-app尺寸单位
     px屏幕像素rpx响应式px屏幕基准:750px公式换算:750*元素在设计稿中的宽度/设计稿基准宽度例如:设计稿宽度375px,元素在设计稿上的宽度为200px,那么元素在uniapp中的宽度应......
  • 把 Eagle App 打造成本地后台管理系统,快速构建 WEB 图片网站。
    自己搭建了图片网站,发现不仅需要前端,还需要后台管理系统,就很烦。偶然之间发现了eagleapp这个软件(专门给设计师管理素材的),经过一番测试,发现了这个好玩的方案。如果你也......
  • uni-app生命周期
    应用生命周期onLaunch:当整个项目启动,渲染完成时触发(全局只触发一次)onShow:小程序显示出来(从后台进入前台显示,可以触发多次)onHide:小程序隐藏起来时触发(从前台进入后台,可......
  • uni-app打包发现
    1、云端发行-原生App-云打包    2、离线运行-原生App本地打包-生成本地打包资源,如果提示安装依赖包,安装即可注意:项目的AppID不能为空,请在该项目下的manifest.......
  • uni-app创建项目
     文件-新建-1.项目 ......
  • uni-app运行项目
    运行-运行到浏览器-选择浏览器    运行新项目:真机测试 需要打开真机的开发者选项usb安装调试功能 ......