小程序:小程序全局配置及配置详解

小程序全局配置及配置详解

小程序配置文件 app.json

默认启动页面路径

{
	// 默认启动页面路径
	"entryPagePath": "pages/index/index" 
}

状态栏、导航条、标题、窗口背景色

{
	"window": { 
		// 导航栏背景颜色
		"navigationBarBackgroundColor": "#000", 
		// 导航栏标题颜色 仅支持 black / white
		"navigationBarTextStyle": "white",    
		// 导航栏标题文字内容	
		"navigationBarTitleText": "首页", 
		// 导航栏样式,仅支持以下值:default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。
		"navigationStyle": "default", 
		 // 在非首页、非页面栈最底层页面或非 tabbar 内页面中的导航栏展示 home 键
		"homeButton": "default",   
		// 窗口的背景色
		"backgroundColor": "#ffffff",   
		// 下拉 loading 的样式,仅支持 dark / light
		"backgroundTextStyle": "dark",  
		// 顶部窗口的背景色,仅 iOS 支持
		"backgroundColorTop": "#ffffff",    
		// 底部窗口的背景色,仅 iOS 支持
		"backgroundColorBottom": "#ffffff", 
		// 是否开启全局的下拉刷新。
		"enablePullDownRefresh": "false", 
		// 页面上拉触底事件触发时距页面底部距离,单位为 px。
		"onReachBottomDistance": "50",  
		// 屏幕旋转设置,支持 auto / portrait / landscape
		"pageOrientation": "portrait",  
		 // 重新启动策略配置
		"restartStrategy": "homePage", 
		// 页面初始渲染缓存配置,支持 static / dynamic
		"initialRenderingCache": "",    
		// 切入系统后台时,隐藏页面内容,保护用户隐私。支持 hidden / none
		"visualEffectInBackground": "none",     
		// 控制预加载下个页面的时机。支持 static / manual / auto
		"handleWebviewPreload": "static",   
	}
}

设置页面底部tab项

{
	"tabBar": {
		// tab 上的文字默认颜色
		"color": "#fff",         
		// tab 上的文字选中时的颜色
		"selectedColor": "#fff",     
		// tab 的背景色
		"backgroundColor": "#fff", 
		// tabbar 上边框的颜色, 仅支持 black / white
		"borderStyle": "black", 
		// tabBar 的位置,仅支持 bottom / top
		"position": "bottom",   
		// 自定义tabBar
		"custom": "false",  
		// tabBar 数组
		list:[{			
			"pagePath": "url",  // tabar路径
			"text": "首页",     // tabar文字
			"iconPath": "../index.png",     // 选中状态的图标
			"selectedIconPath": "../index-active.png", // 非选中状态的图标
		}]
	}
}

请求超时时间

{
	"networkTimeout": {
		"request": "index",     // wx.request 的超时时间
		"connectSocket": "index",   // wx.connectSocket 的超时时间
		"uploadFile": "index",      // wx.uploadFile 的超时时间
		"downloadFile": "index"     // wx.downloadFile 的超时时间
	}
}

调试

{
	// 在开发者工具中开启 debug 模式
	// 在开发者工具的控制台面板,调试信息以 info 的形式给出
	"debug": false,

	// 小程序调试相关配置项
	"debugOptions": {
		// 是否开启 FPS 面板
		// 为了便于开发者调试渲染层的交互性能,小程序基础库提供了选项开启 FPS 面板
		// 开发者可以实时查看渲染层帧率。
		"enableFPSPanel": true 
	}
}

开启多线程 Worker

{
	"workers": "workers"
}

申明需要后台运行的能力

{
	// audio: 后台音乐播放 location: 后台定位
	// 开发版和体验版上可以直接生效,正式版还需通过审核。
	"requiredBackgroundModes": ["audio", "location"]
}

地理位置接口声明

{
	/*
		使用以下8个地理位置相关接口时,需要声明该字段,否则将无法正常使用。
		getFuzzyLocation: 获取模糊地理位置
		getLocation: 获取精确地理位置
		onLocationChange: 监听试试地理位置变化事件
		startLocationUpdate: 接收位置消息(前台)
		startLocationUpdateBackground: 接收位置消息(前后台)
		chooseLocation: 打开地图选择位置
		choosePoi: 打开 POI 列表选择位置
		chooseAddress: 获取用户地址信息
	*/
	"requiredPrivateInfos": [
		"getFuzzyLocation",
		"getLocation",
		"onLocationChange",
		"startLocationUpdate",
		"startLocationUpdateBackground",
		"chooseLocation",
		"choosePoi",
		"chooseAddress"
	]
}

小程序接口权限

{
	// 小程序接口权限相关设置。
	"permission": {
		"scope.userLocation": {	// wx.getLocation, wx.startLocationUpdate
      "desc": "精确地理位置"	
    },
		"scope.userFuzzyLocation": {	// wx.getFuzzyLocation
      "desc": "模糊地理位置"	
    },
		"scope.userLocationBackground": { // wx.startLocationUpdateBackground
      "desc": "后台定位"	
    },
		"scope.record": { // live-pusher组件, wx.startRecord, wx.joinVoIPChat, RecorderManager.start
      "desc": "麦克风"	
    },
		"scope.camera": { // camera组件, live-pusher组件, wx.createVKSession
      "desc": "摄像头"	
    },
		"scope.bluetooth": { // wx.openBluetoothAdapter, wx.createBLEPeripheralServer
      "desc": "蓝牙"	
    },
		"scope.writePhotosAlbum": { // wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum
      "desc": "添加到相册"	
    },
		"scope.addPhoneContact": { // wx.addPhoneContact
      "desc": "添加到联系人"	
    },
		"scope.addPhoneCalendar": { // wx.addPhoneRepeatCalendar, wx.addPhoneCalendar
      "desc": "添加到日历"	
    },
		"scope.werun": { // wx.getWeRunData
      "desc": "微信运动步数"	
    },
		"scope.address": { // wx.chooseAddress
      "desc": "通讯地址(已取消授权,可以直接调用对应接口)"	
    },
		"scope.invoiceTitle": { // wx.chooseInvoiceTitle
      "desc": "发票抬头(已取消授权,可以直接调用对应接口)"	
    },
		"scope.invoice": { // wx.chooseInvoice
      "desc": "获取发票(已取消授权,可以直接调用对应接口)"	
    },
		"scope.userInfo": { // wx.getUserInfo
      "desc": "用户信息(小程序已回收,请使用头像昵称填写,小游戏可继续调用)"	
    }
	}
}

插件功能

{
	// 插件所有者小程序需要设置这一项来启用插件功能页
	"functionalPages": true,
	// 声明小程序需要使用的插件。
	"plugins": {
		"myPlugin": {	// 插件
			"version": "1.0.0",
			"provider": ""
	}},
}

分包

{
	// 启用分包加载时,声明项目分包结构。
	"subpackages": [
		{
	 // 当前包的根目录(根目录的相对路径),必须是独立的,即a的根目录不能在b的子目录中。
      "root": "important", 
      "pages": ["index"], // 当前包下的页面路径
    },
    {
      "root": "sub1",
      "pages": ["index"],
    },
    {
      "name": "hello",
      "root": "path/to",
      "pages": ["index"]
    },
    {
      "root": "sub3",
      "pages": ["index"]
    },
    {
      "root": "indep",
      "pages": ["index"],
      "independent": true
    }],

	// 声明分包预下载的规则。分包预下载目前只支持通过配置方式使用
	// packages 进入页面后预下载分包的 root 或 name。__APP__ 表示主包。
	// 在指定网络下预下载,可选值为: all: 不限网络 wifi: 仅 wifi 下预下载
	"preloadRule": {
		"pages/index": {
      "network": "all",
      "packages": ["important"]
    },
    "sub1/index": {
      "packages": ["hello", "sub3"]
    },
    "sub3/index": {
      "packages": ["path/to"]
    },
    "indep/index": {
      "packages": ["__APP__"]
    }
	}
}

扩展库

{
	// 指定需要引用的扩展库。目前支持以下项目:kbone: 多端开发框架 weui: WeUI 组件库
	"useExtendedLib": {
		"kbone": true,
    "weui": true
	}
}

系统

{
	// 在 iPad 上运行的小程序可以设置支持屏幕旋转。
	// 在 PC 上运行的小程序,用户可以按照任意比例拖动窗口大小,也可以在小程序菜单中最大化窗口
	"resizable": false,

	// DarkMode系统主题样式
	// 配置"darkmode": true表示当前小程序可适配 DarkMode
	"darkmode": true,

	// 指明 theme.json 的位置,darkmode为 true 为必填
	// theme.json 定义相关变量 在app.json中以@开头引用变量。
	"themeLocation": "theme.json"
}
	

其他

{
	// 指明 sitemap.json 的位置(微信小程序SEO)
	"sitemapLocation": "sitemap.json",

	// 启用新版的组件样式。
	"tyle": "v2",

	// 定制化型服务商票据 不知道有啥用
	"serviceProviderTicket": "", 

	// 小程序不使用 catchtouch* 事件时,可以通过这个选项将 passive 置为 true,以提高滚动性能
	// 直接设置这个选项为 true,也可以分别控制某个事件。
	"enablePassiveEvent": {
		"touchstart": true,
		"touchmove": true,
		"wheel": true
	},

	// 自定义模块路径的映射规则
	// 使用该能力的时候,需要在工具上关闭上传代码保护功能
	"resolveAlias": {
		"~/*": "/*",
    "~/origin/*": "origin/*",
    "@utils/*": "utils/*",
    "subBUtils/*": "subpackageB/utils/*"
	},

	// 全局自定义组件配置
	// 注1:全局自定义组件会视为被所有页面依赖,会在所有页面启动时进行初始化
	// 影响启动性能且会占用主包大小。只被个别页面或分包引用的自定义组件应尽量在页面配置中声明。
	// 注2:在全局声明使用率低的自定义组件会大幅影响按需注入的效果。
	"usingComponents": {
    "component-tag-name": "path/to/the/custom/component"
	},

	// 开启小程序 代码注入「按需注入」特性 目前仅支持值 requiredComponents,
	"lazyCodeLoading": "requiredComponents",

	// 单页模式相关配置
	"singlePage": {
		// 导航栏与页面的相交状态,值为 float 时表示导航栏浮在页面上,与页面相交
		// 值为 squeezed 时表示页面被导航栏挤压,与页面不相交
		"navigationBarFit": "float/squeezed" 
	},

	// 打开微信聊天内的素材时,如果小程序配置了支持打开该类型的素材并审核通过
	// 而且用户曾经使用过该小程序,则打开该类型的素材时会出现使用小程序打开的入口。
	// 开发者需要在小程序全局配置(app.json)中声明支持打开的文件类型
	// 对一种文件类型只能声明一种处理方式。
	"supportedMaterials":  {
		"materialType": "text/html",	// 支持文件的类型, 官方指定属性值
		"name": "用${nickname}打开",	// 开发者配置的标题,在素材页面会展示该标题
		"desc": "描述",			// 用途描述,会在推荐列表展示该描述
		"path": "pages/index/"		// 在该场景下打开小程序时跳转页面
	},

	// 指定小程序可通过wx.openEmbeddedMiniProgram打开的小程序名单是。
	// 指定的小程序以半屏的方式打开
	"embeddedAppIdList": "wxe5f52902cf4de896",

	// 视频号直播打开的第一个页面的全屏状态使用自定义顶部,支持 default / custom
	"halfPage": {
		"firstPageNavigationStyle": "custom"
	},

	// 聊天位置消息打开,小程序打车入口
	"entranceDeclare": {
    "locationMessage": {
        "path": "pages/index/index",
        "query": "foo=bar"
    }
	},

	// 全局的默认渲染后端。
	"renderer": "webview / skyline"
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值