欧美日韩精品一区二区在线线,一级无码在线收看,精品国产高清91,久久精品欧美电影

# 全局配置

小程序根目錄下的 app.json 文件用來對微信小程序進(jìn)行全局配置。文件內(nèi)容為一個 JSON 對象,有以下屬性:

# 配置項(xiàng)

屬性 類型 必填 描述 最低版本
entryPagePath string 小程序默認(rèn)啟動首頁
pages string[] 頁面路徑列表
window Object 全局的默認(rèn)窗口表現(xiàn)
tabBar Object 底部 tab 欄的表現(xiàn)
networkTimeout Object 網(wǎng)絡(luò)超時時間
debug boolean 是否開啟 debug 模式,默認(rèn)關(guān)閉
functionalPages boolean 是否啟用插件功能頁,默認(rèn)關(guān)閉 2.1.0
subpackages Object[] 分包結(jié)構(gòu)配置 1.7.3
workers string Worker 代碼放置的目錄 1.9.90
requiredBackgroundModes string[] 需要在后臺使用的能力,如「音樂播放」
requiredPrivateInfos string[] 調(diào)用的地理位置相關(guān)隱私接口
plugins Object 使用到的插件 1.9.6
preloadRule Object 分包預(yù)下載規(guī)則 2.3.0
resizable boolean PC 小程序是否支持用戶任意改變窗口大?。òㄗ畲蠡翱冢?;iPad 小程序是否支持屏幕旋轉(zhuǎn)。默認(rèn)關(guān)閉 2.3.0
usingComponents Object 全局自定義組件配置 開發(fā)者工具 1.02.1810190
permission Object 小程序接口權(quán)限相關(guān)設(shè)置 微信客戶端 7.0.0
sitemapLocation string 指明 sitemap.json 的位置
style string 指定使用升級后的weui樣式 2.8.0
useExtendedLib Object 指定需要引用的擴(kuò)展庫 2.2.1
entranceDeclare Object 微信消息用小程序打開 微信客戶端 7.0.9
darkmode boolean 小程序支持 DarkMode 2.11.0
themeLocation string 指明 theme.json 的位置,darkmode為true為必填 開發(fā)者工具 1.03.2004271
lazyCodeLoading string 配置自定義組件代碼按需注入 2.11.1
singlePage Object 單頁模式相關(guān)配置 2.12.0
supportedMaterials Object 聊天素材小程序打開相關(guān)配置 2.14.3
serviceProviderTicket string 定制化型服務(wù)商票據(jù)
embeddedAppIdList string[] 半屏小程序 appId 2.20.1
halfPage Object 視頻號直播半屏場景設(shè)置 2.18.0
debugOptions Object 調(diào)試相關(guān)配置 2.22.1
enablePassiveEvent Object或boolean touch 事件監(jiān)聽是否為 passive 2.24.1
resolveAlias Object 自定義模塊映射規(guī)則
renderer string 全局默認(rèn)的渲染后端 2.30.4
rendererOptions Object 渲染后端選項(xiàng) 2.31.1
componentFramework string 組件框架,詳見相關(guān)文檔 2.30.4
miniApp Object 多端模式場景接入身份管理服務(wù)時開啟小程序授權(quán)頁相關(guān)配置,詳見相關(guān)文檔
static Object 正常情況下默認(rèn)所有資源文件都被打包發(fā)布到所有平臺,可以通過 static 字段配置特定每個目錄/文件只能發(fā)布到特定的平臺(多端場景) 相關(guān)文檔
convertRpxToVw boolean 配置是否將 rpx 單位轉(zhuǎn)換為 vw 單位,開啟后能修復(fù)某些 rpx 下的精度問題 3.3.0
chatTools Object 聊天工具分包配置 3.7.8

# entryPagePath

指定小程序的默認(rèn)啟動路徑(首頁),常見情景是從微信聊天列表頁下拉啟動、小程序列表啟動等。如果不填,將默認(rèn)為 pages 列表的第一項(xiàng)。不支持帶頁面路徑參數(shù)。

{
  "entryPagePath": "pages/index/index"
}

# pages

用于指定小程序由哪些頁面組成,每一項(xiàng)都對應(yīng)一個頁面的 路徑(含文件名) 信息。文件名不需要寫文件后綴,框架會自動去尋找對應(yīng)位置的 .json, .js, .wxml, .wxss 四個文件進(jìn)行處理。

未指定 entryPagePath 時,數(shù)組的第一項(xiàng)代表小程序的初始頁面(首頁)。

小程序中新增/減少頁面,都需要對 pages 數(shù)組進(jìn)行修改。

如開發(fā)目錄為:

├── app.js
├── app.json
├── app.wxss
├── pages
│?? │── index
│?? │   ├── index.wxml
│?? │   ├── index.js
│?? │   ├── index.json
│?? │   └── index.wxss
│?? └── logs
│??     ├── logs.wxml
│??     └── logs.js
└── utils

則需要在 app.json 中寫

{
  "pages": ["pages/index/index", "pages/logs/logs"]
}

# window

用于設(shè)置小程序的狀態(tài)欄、導(dǎo)航條、標(biāo)題、窗口背景色。

屬性 類型 默認(rèn)值 描述 最低版本
navigationBarBackgroundColor HexColor #000000 導(dǎo)航欄背景顏色,如 #000000
navigationBarTextStyle string white 導(dǎo)航欄標(biāo)題、狀態(tài)欄顏色,僅支持 black / white
navigationBarTitleText string 導(dǎo)航欄標(biāo)題文字內(nèi)容
navigationStyle string default 導(dǎo)航欄樣式,僅支持以下值:
default 默認(rèn)樣式
custom 自定義導(dǎo)航欄,只保留右上角膠囊按鈕。參見注 2。
iOS/Android 微信客戶端 6.6.0,Windows/Mac 微信基礎(chǔ)庫 3.6.1
homeButton boolean false 在非首頁、非頁面棧最底層頁面或非tabbar內(nèi)頁面中的導(dǎo)航欄展示home鍵 微信客戶端 8.0.24
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle string dark 下拉 loading 的樣式,僅支持 dark / light
backgroundColorTop string #ffffff 頂部窗口的背景色,僅 iOS 支持 微信客戶端 6.5.16
backgroundColorBottom string #ffffff 底部窗口的背景色,僅 iOS 支持 微信客戶端 6.5.16
enablePullDownRefresh boolean false 是否開啟全局的下拉刷新。
詳見 Page.onPullDownRefresh
onReachBottomDistance number 50 頁面上拉觸底事件觸發(fā)時距頁面底部距離,單位為 px。
詳見 Page.onReachBottom
pageOrientation string portrait 屏幕旋轉(zhuǎn)設(shè)置,支持 auto / portrait / landscape
詳見 響應(yīng)顯示區(qū)域變化
2.4.0 (auto) / 2.5.0 (landscape)
restartStrategy string homePage 重新啟動策略配置 2.8.0
initialRenderingCache string 頁面初始渲染緩存配置,支持 static / dynamic 2.11.1
visualEffectInBackground string none 切入系統(tǒng)后臺時,隱藏頁面內(nèi)容,保護(hù)用戶隱私。支持 hidden / none 2.15.0
handleWebviewPreload string static 控制預(yù)加載下個頁面的時機(jī)。支持 static / manual / auto 2.15.0
  • 注 1:HexColor(十六進(jìn)制顏色值),如"#ff00ff"
  • 注 2:關(guān)于navigationStyle
    • iOS/Android 客戶端 7.0.0 以下版本,navigationStyle 只在 app.json 中生效。
    • iOS/Android 客戶端 6.7.2 版本開始,navigationStyle: customweb-view 組件無效
    • 開啟 custom 后,低版本客戶端需要做好兼容。開發(fā)者工具基礎(chǔ)庫版本切到 1.7.0(不代表最低版本,只供調(diào)試用)可方便切到舊視覺

# restartStrategy

基礎(chǔ)庫 2.8.0 開始支持,低版本需做兼容處理。

重新啟動策略配置

可選值 含義
homePage (默認(rèn)值)如果從這個頁面退出小程序,下次將從首頁冷啟動
homePageAndLatestPage 如果從這個頁面退出小程序,下次冷啟動后立刻加載這個頁面,頁面的參數(shù)保持不變(不可用于 tab 頁)

如:

{
  "window": {
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "微信接口功能演示",
    "backgroundColor": "#eeeeee",
    "backgroundTextStyle": "light"
  }
}

# tabBar

如果小程序是一個多 tab 應(yīng)用(客戶端窗口的底部或頂部有 tab 欄可以切換頁面),可以通過 tabBar 配置項(xiàng)指定 tab 欄的表現(xiàn),以及 tab 切換時顯示的對應(yīng)頁面。

屬性 類型 必填 默認(rèn)值 描述 最低版本
color HexColor tab 上的文字默認(rèn)顏色,僅支持十六進(jìn)制顏色
selectedColor HexColor tab 上的文字選中時的顏色,僅支持十六進(jìn)制顏色
backgroundColor HexColor tab 的背景色,僅支持十六進(jìn)制顏色
borderStyle string black tabbar 上邊框的顏色, 僅支持 black / white
list Array tab 的列表,詳見 list 屬性說明,最少 2 個、最多 5 個 tab
position string bottom tabBar 的位置,僅支持 bottom / top
custom boolean false 自定義 tabBar,見詳情 2.5.0

其中 list 接受一個數(shù)組,只能配置最少 2 個、最多 5 個 tab。tab 按數(shù)組的順序排序,每個項(xiàng)都是一個對象,其屬性值如下:

屬性 類型 必填 說明
pagePath string 頁面路徑,必須在 pages 中先定義
text string tab 上按鈕文字
iconPath string 圖片路徑,icon 大小限制為 40kb,建議尺寸為 81px * 81px,不支持網(wǎng)絡(luò)圖片。
當(dāng) positiontop 時,不顯示 icon。
selectedIconPath string 選中時的圖片路徑,icon 大小限制為 40kb,建議尺寸為 81px * 81px,不支持網(wǎng)絡(luò)圖片。
當(dāng) positiontop 時,不顯示 icon。

# networkTimeout

各類網(wǎng)絡(luò)請求的超時時間,單位均為毫秒。

屬性 類型 必填 默認(rèn)值 說明
request number 60000 wx.request 的超時時間,單位:毫秒。
connectSocket number 60000 wx.connectSocket 的超時時間,單位:毫秒。
uploadFile number 60000 wx.uploadFile 的超時時間,單位:毫秒。
downloadFile number 60000 wx.downloadFile 的超時時間,單位:毫秒。

# debug

可以在開發(fā)者工具中開啟 debug 模式,在開發(fā)者工具的控制臺面板,調(diào)試信息以 info 的形式給出,其信息有 Page 的注冊,頁面路由,數(shù)據(jù)更新,事件觸發(fā)等??梢詭椭_發(fā)者快速定位一些常見的問題。

# functionalPages

基礎(chǔ)庫 2.1.0 開始支持,低版本需做兼容處理。

插件所有者小程序需要設(shè)置這一項(xiàng)來啟用插件功能頁。

# subpackages

微信客戶端 6.6.0 ,基礎(chǔ)庫 1.7.3 及以上版本支持

啟用分包加載時,聲明項(xiàng)目分包結(jié)構(gòu)。

寫成 subPackages 也支持。

# workers

基礎(chǔ)庫 1.9.90 開始支持,低版本需做兼容處理。

使用 Worker 處理多線程任務(wù)時,設(shè)置 Worker 代碼放置的目錄

# requiredBackgroundModes

微信客戶端 6.7.2 及以上版本支持

申明需要后臺運(yùn)行的能力,類型為數(shù)組。目前支持以下項(xiàng)目:

  • audio: 后臺音樂播放
  • location: 后臺定位

如:

{
  "pages": ["pages/index/index"],
  "requiredBackgroundModes": ["audio", "location"]
}

注:在此處申明了后臺運(yùn)行的接口,開發(fā)版和體驗(yàn)版上可以直接生效,正式版還需通過審核。

# requiredPrivateInfos

自 2022 年 7 月 14 日后發(fā)布的小程序,使用以下8個地理位置相關(guān)接口時,需要聲明該字段,否則將無法正常使用。2022 年 7 月 14 日前發(fā)布的小程序不受影響。

申明需要使用的地理位置相關(guān)接口,類型為數(shù)組。目前支持以下項(xiàng)目:

如:

{
  "pages": ["pages/index/index"],
  "requiredPrivateInfos": [ 
    "getLocation",
    "onLocationChange",
    "startLocationUpdateBackground",
    "chooseAddress"
  ]
}

注:若使用以上接口,均需在小程序管理后臺,「開發(fā)」-「開發(fā)管理」-「接口設(shè)置」中自助開通該接口權(quán)限。

# plugins

基礎(chǔ)庫 1.9.6 開始支持,低版本需做兼容處理。

聲明小程序需要使用的插件。

# preloadRule

基礎(chǔ)庫 2.3.0 開始支持,低版本需做兼容處理。

聲明分包預(yù)下載的規(guī)則。

# resizable

基礎(chǔ)庫 2.3.0 開始支持,低版本需做兼容處理。

在 iPad 上運(yùn)行的小程序可以設(shè)置支持屏幕旋轉(zhuǎn)。

在 PC 上運(yùn)行的小程序,用戶可以按照任意比例拖動窗口大小,也可以在小程序菜單中最大化窗口

# usingComponents

開發(fā)者工具 1.02.1810190 及以上版本支持

在 app.json 中聲明的自定義組件視為全局自定義組件,在小程序內(nèi)的頁面或自定義組件中可以直接使用而無需再聲明。建議僅在此聲明幾乎所有頁面都會用到的自定義組件。

注1:全局自定義組件會視為被所有頁面依賴,會在所有頁面啟動時進(jìn)行初始化,影響啟動性能且會占用主包大小。只被個別頁面或分包引用的自定義組件應(yīng)盡量在頁面配置中聲明。 注2:在全局聲明使用率低的自定義組件會大幅影響按需注入的效果。

# permission

微信客戶端 7.0.0 及以上版本支持

小程序接口權(quán)限相關(guān)設(shè)置。字段類型為 Object,結(jié)構(gòu)為:

屬性 類型 必填 默認(rèn)值 描述
scope.userLocation PermissionObject 位置相關(guān)權(quán)限聲明

PermissionObject 結(jié)構(gòu)

屬性 類型 必填 默認(rèn)值 說明
desc string 小程序獲取權(quán)限時展示的接口用途說明。最長 30 個字符

如:

{
  "pages": ["pages/index/index"],
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息將用于小程序位置接口的效果展示" // 高速公路行駛持續(xù)后臺定位
    }
  }
}

# sitemapLocation

指明 sitemap.json 的位置;默認(rèn)為 'sitemap.json' 即在 app.json 同級目錄下名字的 sitemap.json 文件

# style

基礎(chǔ)庫 2.8.0 開始支持,低版本需做兼容處理。

微信客戶端 7.0 開始,UI 界面進(jìn)行了大改版。小程序也進(jìn)行了基礎(chǔ)組件的樣式升級。app.json 中配置 "style": "v2"可表明啟用新版的組件樣式。

本次改動涉及的組件有 button icon radio checkbox switch slider??汕巴〕绦蚴纠M(jìn)行體驗(yàn)。

# useExtendedLib

基礎(chǔ)庫 2.2.1 開始支持,低版本需做兼容處理。

最新的 nightly 版開發(fā)者工具開始支持,同時基礎(chǔ)庫從支持 npm 的版本(2.2.1)起支持

指定需要引用的擴(kuò)展庫。目前支持以下項(xiàng)目:

指定后,相當(dāng)于引入了對應(yīng)擴(kuò)展庫相關(guān)的最新版本的 npm 包,同時也不占用小程序的包體積。rc工具版本支持分包引用。用法如下:

{
  "useExtendedLib": {
    "kbone": true,
    "weui": true
  }
}

# entranceDeclare

微信客戶端 7.0.9 及以上版本支持,iOS 暫不支持

聊天位置消息用打車類小程序打開,詳情參考。

"entranceDeclare": {
    "locationMessage": {
        "path": "pages/index/index",
        "query": "foo=bar"
    }
}

# darkmode

開發(fā)者工具 1.03.2004271 及以上版本支持,基礎(chǔ)庫 2.11.0 及以上版本支持

微信iOS客戶端 7.0.12 版本、Android客戶端 7.0.13 版本正式支持 DarkMode,可通過配置"darkmode": true表示當(dāng)前小程序可適配 DarkMode,所有基礎(chǔ)組件均會根據(jù)系統(tǒng)主題展示不同的默認(rèn)樣式,navigation bar 和 tab bar 也會根據(jù)開發(fā)者的配置自動切換。

配置后,請根據(jù)DarkMode 適配指南自行完成基礎(chǔ)樣式以外的適配工作。

{
  "darkmode": true
}

# themeLocation

自定義 theme.json 的路徑,當(dāng)配置"darkmode":true時,當(dāng)前配置文件為必填項(xiàng)。

{
  "themeLocation": "/path/to/theme.json"
}

# lazyCodeLoading

目前僅支持值 requiredComponents,代表開啟小程序「按需注入」特性。

{
  "lazyCodeLoading": "requiredComponents"
}

# singlePage

基礎(chǔ)庫 2.11.3 及以上版本支持,目前分享到朋友圈 (Beta) 后打開會進(jìn)入單頁模式

單頁模式相關(guān)配置

屬性 類型 必填 默認(rèn)值 描述
navigationBarFit String 默認(rèn)自動調(diào)整,若原頁面是自定義導(dǎo)航欄,則為 float,否則為 squeezed 導(dǎo)航欄與頁面的相交狀態(tài),值為 float 時表示導(dǎo)航欄浮在頁面上,與頁面相交;值為 squeezed 時表示頁面被導(dǎo)航欄擠壓,與頁面不相交

# embeddedAppIdList

指定小程序可通過wx.openEmbeddedMiniProgram打開的小程序名單。

{
  "embeddedAppIdList": ["wxe5f52902cf4de896"]
}

# halfPage

屬性 類型 必填 默認(rèn)值 描述
firstPageNavigationStyle string 視頻號直播打開的第一個頁面的全屏狀態(tài)使用自定義頂部,支持 default / custom
{
  "halfPage": {
    "firstPageNavigationStyle": "custom"
  }
}

# debugOptions

小程序調(diào)試相關(guān)配置項(xiàng)

屬性 類型 必填 默認(rèn)值 描述
enableFPSPanel boolean false 是否開啟 FPS 面板
{
  "debugOptions": {
    "enableFPSPanel": "false"
  }
}

# enablePassiveEvent

touch 相關(guān)事件默認(rèn)的 passive 為 false。如果小程序不使用 catchtouch* 事件時,可以通過這個選項(xiàng)將 passive 置為 true,以提高滾動性能。具體原理可參考MDN。

可以直接設(shè)置這個選項(xiàng)為 true,也可以分別控制某個事件。

{
  "enablePassiveEvent": true
}
屬性 類型 必填 默認(rèn)值 描述
touchstart boolean false 是否設(shè)置 touchstart 事件為 passive
touchmove boolean false 是否設(shè)置 touchmove 事件為 passive
wheel boolean false 是否設(shè)置 wheel 事件為 passive
{
  "enablePassiveEvent": {
    "touchstart": true
  }
}

注意

開啟了 enablePassiveEvent 之后,使用以下內(nèi)置組件可能會導(dǎo)致出現(xiàn)非預(yù)期的行為,但不會導(dǎo)致頁面白屏。

touchmove 設(shè)置為 true,如下內(nèi)置組件可能會出現(xiàn)非預(yù)期表現(xiàn):

  • movable-area
  • movable-view
  • video
  • canvas(windows、mac 小程序)
  • picker-view-column

wheel 設(shè)置為 true,如下內(nèi)置組件可能會出現(xiàn)非預(yù)期表現(xiàn):

  • swiper(mac 小程序)
  • map

推薦在用到如上組件的頁面中將對應(yīng)事件的 enablePassiveEvent 設(shè)置為 false 以避免非預(yù)期行為。

2.25.1 之后,在頁面/組件實(shí)例中新增 getPassiveEvent / setPassiveEvent 兩個接口,用于在運(yùn)行時獲取/切換頁面或組件所在頁面的 passive 配置。


Component({
    methods: {
        getPassive() {
            this.getPassiveEvent((passive) => {
                const { touchstart, touchmove, wheel } = passive
            })
        },
        setPassive() {
            const passive {
                touchstart: false,
                touchmove: true,
                wheel: false,
            }
            this.setPassiveEvent(passive)
        }
    }
})

# resolveAlias

使用 resolveAlias 配置項(xiàng)用來自定義模塊路徑的映射規(guī)則。

配置了之后,會對 require 里的模塊路徑進(jìn)行規(guī)則匹配并映射成配置的路徑。

如果命中多條映射規(guī)則,則取最長的命中規(guī)則。

{
  "resolveAlias": {
    "~/*": "/*",
    "~/origin/*": "origin/*",
    "@utils/*": "utils/*",
    "subBUtils/*": "subpackageB/utils/*"
  }
}

注意

  1. resolveAlias 進(jìn)行的是路徑匹配,其中的 key 和 value 須以 /* 結(jié)尾。

配置了上述路徑映射規(guī)則,會做如下匹配并轉(zhuǎn)換

  • ~/mod.js -> mod.js
  • ~/origin/mod.js -> origin/mod.js
  • @utils/mod.js -> utils/mod.js
  • subBUtils/mod.js -> subpackageB/utils/mod.js
  1. 如果在 project.config.json 中指定了 miniprogramRoot,則 /* 指代的根目錄是 miniprogramRoot 對應(yīng)的路徑,而不是開發(fā)者工具項(xiàng)目的根目錄

# renderer

指定小程序全局的默認(rèn)渲染后端。

可選值:webview, skyline

默認(rèn)值:webview

# rendererOptions

小程序渲染后端的相關(guān)配置選項(xiàng)

屬性 類型
skyline SkylineOptions

# SkylineOptions

Skyline 渲染引擎的相關(guān)配置項(xiàng)

屬性 類型 默認(rèn)值 說明
defaultDisplayBlock boolean false 開啟默認(rèn) Block 布局
defaultContentBox boolean false 開啟默認(rèn) ContentBox 盒模型
tagNameStyleIsolation string 'isolated' 開啟 tag 選擇器全局匹配
enableScrollViewAutoSize boolean false 開啟scroll-view自動撐開
disableABTest boolean false 關(guān)閉 Skyline AB 實(shí)驗(yàn)
{
  "rendererOptions": {
    "skyline": {
      "disableABTest": true,
      "defaultDisplayBlock": true,
      "defaultContentBox": true,
      "tagNameStyleIsolation": "legacy",
      "enableScrollViewAutoSize": true,
    }
  }
}

# componentFramework

指定小程序使用的組件框架

可選值:exparser, glass-easel

默認(rèn)值:exparser

# chatTools

指定聊天工具對應(yīng)的獨(dú)立分包

屬性 類型 必填 說明
root string 分包根目錄
entryPagePath string 聊天工具啟動路徑
desc string 聊天工具描述
scopes string[] 分包中會使用的scope權(quán)限
{
  "chatTools": [
    {
      "root": "packageChatTool",
      "entryPagePath": "pages/activity_create/index",
      "desc": "群簽到工具",
      "scopes": [
        "scope.userLocation"
      ]
    }
  ]
}

# 配置示例

{
  "pages": ["pages/index/index", "pages/logs/index"],
  "window": {
    "navigationBarTitleText": "Demo"
  },
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首頁"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      }
    ]
  },
  "networkTimeout": {
    "request": 10000,
    "downloadFile": 10000
  },
  "debug": true,
}