Manifest.json文件是5+移動App的配置文件,用於指定應用的顯示名稱、圖標、應用入口文件地址及需要使用的設備權限等信息,用戶可通過HBuilder的可視化界面視圖或者源碼視圖來配置5+移動App的信息。
Manifest.json文件根據w3c的webapp規范制定,plus節點下內容為HTML5Plus擴展規范,其下包括iOS和Android子節點,內容來源分別為iOS和Android原生打包所要求的參數,用於對5+移動App打包為ipa或apk安裝包進行配置。
應用基本信息配置
在HBuilder中創建“移動App”應用后后都會在工程下生成manifest.json文件,在“項目管理器”中雙擊即可打開。
HBuilder打開manifest.json文件后默認顯示“可視化視圖”,可配置應用的基本信息:
點擊窗口底部的“代碼視圖”可切換到代碼視圖:
應用信息
包括應用的名稱、入口頁面地址、版本信息等。
可視化視圖
- 應用名稱:App打包后在手機上桌面的快捷方式名稱;
- appid:HBuilder appid(應用標識),在創建時分配的、以后不可改的標識。如用戶手動修改ID打包時會提示參數錯誤;
- 版本號:應用的版本號,用戶可通過plus API(plus.runtime.version)獲取應用的版本號,需提交App雲端打包后才能生效;
- 入口頁面:應用啟動后自動打開的第一個HTML頁面,可填寫本地html文件地址(相對於應用根目錄)或網絡地址(以http://或https://開頭)。
代碼視圖
字段說明:
節點名 | 二級節點 | 是否可選 | 說明 |
---|---|---|---|
id | 必選 | Hbuilder appid | |
launch_path | 必選 | 入口頁面 | |
name | 必選 | 應用名稱 | |
version | name | 必選 | 版本號(名稱),在應用中顯示的字符串 |
version | code | 可選 | 版本號(數字),各應用市場以此判斷版本號,數字大表示版本號高,未指定時HBuilder在提交App雲端打包時會自動生成保證新打包版本后高 |
重力感應
配置應用運行時支持的顯示方向。
可視化視圖
可通過點擊表示設備方向的按鈕來選擇設備支持重力感應旋轉方向。
重力選擇按鈕可選擇一個或多個,選擇多個方向后,應用可按照指定方向顯示應用頁面,如只選中一個按鈕,表示終端只支持一個方向顯示頁面內容。
代碼視圖
通過plus->distribute->orientation字段值進行控制:
- "portrait-primary":豎屏正方向;
- "portrait-secondary":豎屏反方向;
- "landscape-primary":橫屏正方向;
- "landscape-secondary":橫屏反方向。
注意:需要提交App雲端打包后才生效。
平台選擇
用於選擇應用支持的手機平台,選擇支持后會出現對應的平台圖標和啟動界面配置項:
- iOS:支持iOS平台
- iPhone:支持iPhone(iTouch)設備
- iPad:支持iPad設備
- Android:支持Android平台
注意:IOS打包支持iPhone和iPad兩種設備,用戶需要根據應用的運行效果自行選擇。設備的支持可選擇一種或兩種。
如只選擇iPhone設備打包,打包后應用在iPad上運行效果為四周有黑色邊框效果,應用獲取的設備分辨率為iPhone設備的分辨率; 如只選擇iPad設備打包,則應用無法安裝到iPhone設備上; 如果兩設備同時選擇,則程序在設備上運行均為全屏效果。
應用圖標和啟動圖片
可視化視圖
在平台中選擇后則會出現對應平台的應用圖標和啟動圖片配置項:
點擊展開詳細配置項:
按照頁面提示的分辨率選擇對應的應用圖標和啟動圖片即可。
注意:所有圖片格式必須是png,且嚴格符合分辨率要求。使用其他圖片格式重命名為png會導致打包失敗!
代碼視圖
在代碼視圖中可以進行更加靈活的配置:
iOS平台
應用圖標
iOS平台應用圖標配置項在plus->distribute->icons->ios下進行配置:
prerendered:應用圖標是否已經高亮處理,在iOS6及以下設備上有效;
auto:App雲端打包自動生成各種尺寸的原始圖片,要求為512x512的png圖,沒有在iphone和ipad中指定對應分辨率圖標時則通過此文件進行縮放自動生成;
iphone:指定iPhone設備上各iOS版本上使用的應用圖標(png格式),詳情如下:
節點名 | 圖標尺寸 | 說明 |
---|---|---|
normal | 57*57 | iPhone普通屏幕程序圖標 |
retina | 114*114 | iPhone高分屏程序圖標 |
retina7 | 120*120 | iPhone iOS7高分屏程序圖標 |
retina8 | 180*180 | iPhone6Plus程序圖標 |
spotlight-normal | 29*29 | iPhone Spotlight搜索程序時出現在程序列表中的圖標 |
spotlight-retina | 58*58 | iPhone高分屏Spotlight搜索程序圖標 |
spotlight-retina7 | 80*80 | iPhone iOS7高分屏Spotlight搜索程序圖標 |
settings-normal | 29*29 | iPhone設置頁面程序圖標 |
settings-retina | 58*58 | iPhone高分屏設置頁面程序圖標 |
settings-retina8 | 87*87 | iPhone6Plus設置頁面程序圖標 |
ipad:指定各種iPad設備上各iOS版本上使用的應用圖標(png格式):
節點名 | 圖標尺寸 | 說明 |
---|---|---|
normal | 72*72 | iPad普通屏幕程序圖標 |
retina | 144*144 | iPad高分屏程序圖標 |
normal7 | 76*76 | iPad iOS7程序圖標 |
retina7 | 152*152 | iPad iOS7高分屏程序圖標 |
spotlight-normal | 50*50 | iPad Spotlight搜索程序時出現在程序列表中的圖標 |
spotlight-retina | 100*100 | iPad高分屏Spotlight搜索程序圖標 |
spotlight-normal7 | 40*40 | iPad iOS7 Spotlight搜索程序圖標 |
spotlight-retina7 | 80*80 | iPad iOS7高分屏Spotlight搜索程序圖標 |
settings-normal | 29*29 | iPad設置頁面程序圖標 |
settings-retina | 58*58 | iPad高分屏設置頁面程序圖標 |
啟動圖片
iOS平台應用啟動圖片配置項在plus->distribute->splashscreen->ios下進行配置:
iphone:指定各iPhone設備上使用的啟動圖片(png格式),詳情如下:
節點名 | 圖標尺寸 | 說明 |
---|---|---|
default | 320*480 | iPhone3啟動圖片 |
retina35 | 640*960 | 3.5英寸設備(iPhone4)啟動圖片 |
retina40 | 640*1136 | 4.0英寸設備(iPhone5)啟動圖片 |
retina55 | 1242*2208 | 4.7/5.5英寸設備(iPhone6[Plus]/7[Plus]/8[Plus])啟動圖片 |
retina55l | 2208*1242 | 4.7/5.5英寸設備(iPhone6[Plus]/7[Plus]/8[Plus])橫屏啟動圖片 |
iphonex | 1125*2436 | 5.8英寸設備(iPhoneX)啟動圖片 |
iphonexl | 2436*1125 | 5.8英寸設備(iPhoneX)橫屏啟動圖片 |
ipad:指定各種iPad設備上使用的啟動圖片(png格式):
節點名 | 圖標尺寸 | 說明 |
---|---|---|
portrait | 768*1004 | 需支持iPad時必選,iPad豎屏啟動圖片 |
portrait-retina | 1536*2008 | 需支持iPad時必選,iPad高分屏豎屏圖片 |
landscape | 1024*748 | 需支持iPad時必選,iPad橫屏啟動圖片 |
landscape-retina | 2048*1496 | 需支持iPad時必選,iPad高分屏橫屏啟動圖片 |
portrait7 | 768*1024 | iOS7時必選,iPad豎屏啟動圖片 |
portrait-retina7 | 1536*2048 | 需支持iPad iOS7時必選,iPad高分屏豎屏圖片 |
landscape7 | 1024*768 | 需支持iPad iOS7時必選,iPad橫屏啟動圖片 |
landscape-retina7 | 2048*1536 | 需支持iPad iOS7時必選,iPad高分屏橫屏啟動圖片 |
Android平台
應用圖標
Android平台應用圖標配置項在plus->distribute->icons->android下進行配置:
指定各種分辨率設備上使用的應用圖標(png格式)
節點名 | 圖標尺寸 | 說明 |
---|---|---|
mdpi | 48*48 | 普通屏程序圖標 |
ldpi | 48*48 | 大屏程序圖標 |
hdpi | 72*72 | 高分屏程序圖標 |
xhdpi | 96*96 | 720P高分屏程序圖標 |
xxhdpi | 144*144 | 1080P高分屏程序圖標 |
啟動圖片
Android平台應用啟動圖片配置項在plus->distribute->splashscreen->android下進行配置:
指定各種分辨率設備上使用的啟動圖片(png格式)
節點名 | 圖標尺寸 | 說明 |
---|---|---|
mdpi | 240*282 | 普通屏啟動圖片 |
ldpi | 320*442 | 大屏啟動圖片 |
hdpi | 480*762 | 高分屏啟動圖片 |
xhdpi | 720*1242 | 720高分屏幕啟動圖片 |
xxhdpi | 1080*1882 | 1080p高分屏啟動圖片 |
第三方插件
在5+應用中如需要使用推送、統計、分享等功能,則需要在打包時選擇使用第三方插件,並填寫相關配置信息。
選中“使用第三方插件”后會出現自動出現“插件設置”項,展開為:
選中需要使用的插件模塊,則會自動顯示對應的參數配置輸入框。
統計插件
5+目前在統計插件方面集成的是友盟統計平台,開發者可以通過集成統計插件來對已開發的應用的重要信息點進行統計,並通過友盟后台網站查看統計數據。用戶需要在友盟統計官網(http://www.umeng.com/)申請應用。
參考統計插件配置
地圖插件
5+目前集成了百度地圖和高德地圖,開發者可以在應用中調用plus.maps.* API顯示地圖。
需在百度地圖開發者網站(http://developer.baidu.com/map/)申請應用的appkey
並在manifest.json文件中配置。IOS設備和Android設備需要單獨申請各自的appkey。
參考地圖插件配置
支付插件
5+目前已集成以下支付平台的sdk:
- 支付寶
使用支付功能前必須在支付寶網站開通”快捷支付“服務,並配置服務器生成訂單信息。 - 微信支付
參考支付插件配置
分享插件
5+目前已集成以下分享平台:
參考分享插件配置
推送插件
授權登錄插件
5+目前已集成以下第三方授權登錄平台:
完整manifest.json格式
上面介紹了manifest.json文件的常用配置信息,下面是一些5+ APP特有或根據平台特性補充的一些配置信息。在HBuilder中需打開manifest.json文件並切換到“代碼視圖”進行手動配置。
復制代碼{ "id": "必選,應用的標識", "name": "必選,應用名稱", "version": { "name": "必選,版本名稱", "code": "必選,版本代號,對應原來的versionCode值" }, "description": "可選,應用描述信息", "icons": { "48": "可選,應用圖標的路徑,可以放多種分辨率" }, "launch_path": "必選,應用的入口頁面,默認為根目錄下的index.html;也可以是網絡地址,網絡地址必須以http://或https://開頭", "developer": { "name": "可選,開發者名稱", "email": "可選,開發者郵箱地址", "url": "可選,開發者網站地址" }, "permissions": { "Accelerometer": "必選,訪問設備感應器", "Camera": "必選,訪問設備感應器", "Contacts": "必選,訪問設備感應器", "UI": "必選,訪問設備感應器", "push": { "cover": "true" }, "runtime": "必選,訪問設備感應器" }, "orientation": [ "portrait", "landscape", "可選," ], "default_locale": "可選,保留作為默認使用的本地化資源,暫不使用", "locales": "可選,保留作為本地化使用,暫不使用", "plus": { "arguments": "啟動應用的參數,應用中可通過plus.runtime.arguments獲取", "splashscreen": { "autoclose": "可選,是否自動關閉啟動界面,默認值為true", "event": "titleUpdate|rendering|loaded,觸發自動關閉splash界面的事件", "target": "default|second,event事件的目標Webview窗口", "waiting": "true|false,是否顯示等待雪花", "delay": "可選,啟動界面在應用的首界面加載完畢后延遲關閉的時間,單位為ms", "ads": { "background": "開屏廣告背景顏色,#RRGGBB格式字符串,默認值為白色(#FFFFFF)", "image": "開屏廣告底部圖片地址,如logo.png,相對應用資源目錄路徑,不支持網絡地址" } }, "statusbar": { "immersed": "none|suggestedDevice|supportedDevice,沉浸式狀態欄情況", "style": "dark|light, 系統狀態欄樣式", "background": "#RRGGBB格式字符串,系統狀態欄背景顏色" }, "safearea": { //安全區域配置,僅iOS平台生效 "background":"#CCCCCC", // 安全區域外的背景顏色,默認值為"#FFFFFF" "bottom":{ // 底部安全區域配置 "offset":"none|auto" // 底部安全區域偏移,"none"表示不空出安全區域,"auto"自動計算空出安全區域,默認值為"none" }, "left": { // 左側安全區域配置(橫屏顯示時有效) "offset":"none|auto" }, "right: { // 右側安全區域配置(橫屏顯示時有效) "offset":"none|auto" } }, "softinput": { "navBar": "auto|none", // 是否顯示軟鍵盤上的導航條 "auxiliary": true|false, // 是否開啟輔助輸入功能 "mode": "adjustResize|adjustPan" // 軟鍵盤彈出模式 }, "popGesture": "none,新建webview窗口無側滑返回功能;close:新建webview窗口默認側滑返回關閉;hide:新建webview窗口默認側滑返回隱藏。", "error": { "url": "頁面加載錯誤時打開的頁面地址,可以是網絡地址,也可以是本地地址" }, "useragent": { "value": "要設置的默認userAgent值", "concatenate": true }, "cache": { "mode": "Webview窗口的默認緩存模式,可取值default、cacheElseNetwork、noCache、cacheOnly" }, "cers": { "description": "控制是否開啟應用異常崩潰與錯誤報告系統", "crash": true }, "kernel": { "ios": "Webview窗口默認使用的內核,可取值:WKWebview - 在iOS8.0及以上系統默認使用WKWebview內核,UIWebview - 使用UIWebview內核,默認值為UIWebview" }, "ssl": { "untrustedca": "accept|refuse|warning,訪問https網絡時對非受信證書的處理邏輯" }, "launchwebview": { "overrideresource": [{ "match": "區配攔截的資源url地址", "redirect": "攔截資源的重現向地址", "mime": "攔截資源的數據類型", "encoding": "攔截資源的數據編碼", "header": "攔截資源的http頭數據" }], "overrideurl": { "mode": "allow|reject,攔截模式", "match": "匹配攔截規則", "exclude": "none|redirect,排除攔截理規則" }, "titleNView": { "backgroundcolor": "#F7F7F7, 標題欄背景顏色", "titletext": "標題欄標題文字內容", "titlecolor": "#000000, 標題欄標題文字顏色" } }, "secondwebview": { "launch_path": "加載頁面地址", "id": "Webview窗口標識", "mode": "front|child|behind,Webview顯示模式", "height": "0px|10%,Webview窗口高度", "overrideresource": [{ "match": "區配攔截的資源url地址", "redirect": "攔截資源的重現向地址", "mime": "攔截資源的數據類型", "encoding": "攔截資源的數據編碼", "header": "攔截資源的http頭數據" }], "overrideurl": { "mode": "allow|reject,攔截模式", "match": "匹配攔截規則", "exclude": "none|redirect,排除攔截理規則" } }, "runmode": "normal", "signature": "可選,保留給應用簽名,暫不使用", "confusion": { "description":"js原生混淆配置", "resources":{ } } "distribute": { "debug": "可選,是否為debug模式,可取值:true表示debug模式運行,false表示release模式運行,默認值為false", "apple": { "appid": "iOS必選,蘋果開發網站申請的appid,如io.dcloud.hbuilder", "mobileprovision": "iOS必選,打包配置文件", "password": "iOS必選,導入配置文件密碼", "p12": "iOS必選,打包配置文件關聯的個人證書", "devices": "iphone,可取值iphone/ipad/universal", "UIReserveStatusbarOffset": "應用的區域是否預留系統狀態欄位置(應用區域通頂到系統狀態欄區域),僅iOS7及以上平台有效,Boolean類型,true表示預留系統狀態欄位置(不通頂),false表示不預留系統狀態欄位置(通頂),默認值為true。", "UIStatusBarStyle": "設置狀態欄的樣式,可取值UIStatusBarStyleBlackTranslucent/UIStatusBarStyleDefault/UIStatusBarStyleBlackOpaque", "StatusBarBackground": "設置狀態欄的背景顏色,iOS7以上系統有效,支持#RRGGBB格式", "UIBackgroundModes": ["設置應用是否支持后台模式,可取值“audio”表示支持后台播放音樂"], "urltypes": [{ "urlschemes": [ "hbuilder", "必選,程序所支持的自定義協議名稱" ], "id": "可選,自定義協議的標識", "icon": "可選,打開程序時顯示的圖標" }, { "urlschemes": [ "http", "https", "必選,程序所支持的自定義協議名稱,大小寫無關,推薦使用小寫" ], "id": "可選,自定義協議的標識", "icon": "可選,打開程序時顯示的圖標" } ], "deploymentTarget": "iOS支持的最低操作系統版本,例如:9.1.0", "frameworks": ["使用native.js調用API要引用的庫文件名稱,如CoreLocation.framework", "QuartzCore.framework"] }, "google": { "packagename": "Android必選,程序包名,如com.dheaven.hbuilder", "keystore": "Android必選,打包證書文件", "password": "Android必選,打包證書密碼", "aliasname": "Android必選,打包證書別名", "hardwareAccelerated": "Boolean類型,是否開啟硬件加速,true表示開啟,false表示關閉", "schemes": [ "應用支持的scheme,大小寫相關,推薦使用小寫" ], "theme": "程序使用的主題", "android:name": "自定義程序入口類名", "custompermissions": "Boolean類型,是否自定義android權限,true表示自定義權限,只使用permissions下指定的android權限,不根據用戶使用的5+模塊自動添加android權限,false表示自動根據用戶使用的5+模塊自動添加android權限", "permissions": [ "要添加的額外的android權限,如<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\" />", "<uses-permission android:name=\"com.android.launcher.permission.UNINSTALL_SHORTCUT\" />" ], "minSdkVersion":"apk支持的最低版本,默認值為14", "targetSdkVersion":"apk的目標版本,默認值為23", "locale": "應用的語言,默認值為default(系統語言),如en_US表示使用英語(美國)" }, "orientation": [ "portrait-primary", "landscape-primary", "portrait-secondary", "landscape-secondary" ], "icons": { "ios": { "appstore":"必選, 1024x1024, 提交app sotre使用的圖標", "iphone": { "app@2x": "可選,120x120,iOS7-11程序圖標(iPhone4S/5/6/7/8)", "app@3x": "可選,180x180,iOS7-11程序圖標(iPhone6plus/7plus/8plus/X)", "spotlight@2x": "可選,80x80,iOS7-11 Spotlight搜索圖標(iPhone5/6/7/8)", "spotlight@3x": "可選,120x120,iOS7-11 Spotlight搜索圖標(iPhone6plus/7plus/8plus/X)", "settings@2x": "可選,58x58,iOS5-11 Settings設置圖標(iPhone5/6/7/8)", "settings@3x": "可選,87x87,iOS5-11 Settings設置圖標(iPhone6plus/7plus/8plus/X)", "notification@2x": "可選,40x40,iOS7-11 通知欄圖標(iPhone5/6/7/8)", "notification@3x": "可選,60x60,iOS7-11 通知欄圖標(iPhone6plus/7plus/8plus/X)" }, "ipad": { "app[normal7]": "可選,76x76,iOS7-11程序圖標", "app@2x[retina7]": "可選,152x152,iOS7-11程序圖標(高分屏)", "proapp@2x": "可選,167x167,iOS9-11程序圖標(iPad Pro)", "spotlight": "可選,40x40,iOS7-11 Spotlight搜索圖標", "spotlight@2x": "可選,80x80,iOS7-11 Spotlight搜索圖標(高分屏)", "settings": "可選,29x29,iOS5-11 設置圖標", "settings@2x": "可選,58x58,iOS5-11 設置圖標(高分屏)", "notification": "可選,20x20,iOS7-11 通知欄圖標", "notification@2x": "可選,40x40,iOS7-11 通知欄圖標(高分屏)" } }, "android": { "mdpi": "必選,48x48,普通屏程序圖標", "ldpi": "必選,48x48,大屏程序圖標", "hdpi": "必選,72x72,高分屏程序圖標", "xhdpi": "必選,96x96,720P高分屏程序圖標", "xxhdpi": "必選,144x144,1080P高分屏程序圖標", "xxxhdpi": "可選,192x192" } }, "splashscreen": { "ios": { "iphone": { "default": "可選,320x480,iPhone3啟動圖片", "retina35": "可選,640x960,3.5英寸設備(iPhone4)啟動圖片", "retina40": "可選,640x1136,4.0英寸設備(iPhone5)啟動圖片", "retina40l":"可選,1136x640,4.0英寸設備(iPhone5)橫屏啟動圖片", "retina47": "可選,750x1334,4.7英寸設備(iPhone6)啟動圖片", "retina47l": "可選,1334x750,4.7英寸設備(iPhone6)橫屏啟動圖片", "retina55": "可選,1242x2208,5.5英寸設備(iPhone6Plus)啟動圖片", "retina55l": "可選,2208x1242,5.5英寸設備(iPhone6Plus)橫屏啟動圖片", "iphonex": "可選,1125x2436,iPhoneX啟動圖片", "iphonexl": "可選,2436x1125,iPhoneX橫屏啟動圖片" }, "ipad": { "portrait": "可選,768x1004,需支持iPad時必選,iPad豎屏啟動圖片", "portrait-retina": "可選,1536x2008,需支持iPad時必選,iPad高分屏豎屏圖片", "landscape": "可選,1024x748,需支持iPad時必選,iPad橫屏啟動圖片", "landscape-retina": "可選,2048x1496,需支持iPad時必選,iPad高分屏橫屏啟動圖片", "portrait7": "可選,768x1024,需支持iPad iOS7時必選,iPad豎屏啟動圖片", "portrait-retina7": "可選,1536x2048,需支持iPad iOS7時必選,iPad高分屏豎屏圖片", "landscape7": "可選,1024x768,需支持iPad iOS7時必選,iPad橫屏啟動圖片", "landscape-retina7": "可選,2048x1536,需支持iPad iOS7時必選,iPad高分屏橫屏啟動圖片" } }, "android": { "mdpi": "必選,240x282,普通屏啟動圖片", "ldpi": "必選,320x442,大屏啟動圖片", "hdpi": "必選,480x762,高分屏啟動圖片", "xhdpi": "必選,720x1242,720P高分屏啟動圖片", "xxhdpi": "必選,1080x1882,1080P高分屏啟動圖片" } }, "plugins": { "statics": { "umeng": { "appkey_ios": "必選,iOS平台友盟統計應用密鑰,如5379d57656240b5493130a40", "channelid_ios": "可選,iOS平台應用發布通道標識,如appstore", "appkey_android": "必選,Android平台友盟統計應用密鑰,如5379d5c456240b9c8b045211", "channelid_android": "必選,Android平台應用發布通道標識,如googleplay", "appkey": "廢棄,友盟統計應用密鑰", "channelid": "廢棄,友盟統計應用發布通道標識" } }, "maps": { "baidu": { "appkey_ios": "必選,iOS平台百度地圖應用密鑰,如mRFUA0lOYyCGXOcFkZ4cP44K", "appkey_android": "必選,Android平台百度地圖應用密鑰,如mRFUA0lOYyCGXOcFkZ4cP44K", "appkey": "廢棄,老版本使用的應用密鑰,如mRFUA0lOYyCGXOcFkZ4cP44K", "description": "百度地圖" } }, "speech": { "ifly": { "appid": "必選,訊飛語音識別應用標識" } }, "push": { "igexin": { "appid": "必選,個推應用標識", "appkey": "必選,個推應用appkey", "appsecret": "必選,個推應用安全標識" } }, "share": { "sina": { "appkey": "必選,新浪網站申請", "appsecret": "必選,新浪網站申請", "redirect_uri": "必選,新浪網站申請應用時填寫", "description": "可選,新浪微博分享" }, "tencent": { "appkey": "必選,騰訊網站申請", "appsecret": "必選,騰訊網站申請", "redirect_uri": "必選,騰訊網站申請應用時填寫", "description": "可選,騰訊微博分享" }, "weixin": { "appid": "必選,微信網站申請", "appsecret": "必選,微信網站申請", "description": "可選,微信分享" } }, "payment": { "alipay": { "scheme": "必選,iOS平台調用支付寶的“快捷支付”應用返回時用到的標識", "description": "可選,阿里支付" }, "weixn": { "description": "可選,微信支付" } } } }, "adid": "廣告聯盟會員ID" } }
應用是否全屏顯示
fullscreen節點定義應用是否全屏方式顯示,Boolean值:true表示應用全屏方式顯示,false表示非全屏方式顯示(顯示系統狀態欄)。
默認值為false。
5+ API模塊設置
permissions節點定義應用調用擴展API的權限,JSON格式對象,字段值為擴展API的feature名稱,參考5+ API模塊化分類
包括以下字段:
- "description":擴展特性描述信息
特殊字段: - "cover":Push API模塊有效,布爾類型,用於描述是接收到新的推送消息后是否在覆蓋系統消息中心中以前的消息,true表示覆蓋,false表示不覆蓋,默認值為false。
開發者信息
應用的開發者信息,包括以下字段信息:
- name;開發者名稱,字符串類型
- email;開發者郵箱地址,字符串類型
- url:開發者網站地址,字符串類型。
5+ 擴展參數
arguments
可選項,應用啟動時的5+默認參數,String類型。
在5+中可通過plus.runtime.arguments獲取,如果外部調用應用時傳入了參數,則覆蓋此默認參數。
splashscreen
可選項,程序啟動界面配置信息,JSON格式對象,包括以下字段:
- autoclose:是否自動關閉程序啟動界面,布爾類型。默認為true,即自動關閉程序啟動界面,否則需要在應用中顯式調用plus.navigator.closeSplashscreen方法來關閉。
- event:觸發自動關閉splash界面的事件類型,字符串類型,可取值:"titleUpdate"表示當首頁Webview的titleUpdate事件觸發時自動關閉splash界面,"rendering"表示當首頁Webview的rendering事件觸發時自動關閉splash界面,"loaded":表示當首頁Webview的loaded事件觸發時自動關閉splash界面。默認值為loaded。
- target:設置雙首頁模式下,定義目標webview觸發event類型自動關閉splash界面,可取值:"default"根據首頁Webview的event事件關閉splash,"second":根據第二個首頁Webview的event事件關閉splash,默認值為"default"。
- waiting:是否在程序啟動界面顯示等待雪花,布爾類型。默認為false,即不顯示等待雪花。
- delay:啟動界面在應用的首頁面加載完畢后延遲關閉的時間,單位為毫秒,數字類型。默認不延遲,即首頁面加載完畢后立即關閉。
- ads:開屏廣告配置信息,JSON格式對象,包括以下屬性: background設置背景顏色,image設置底部圖片地址,相對應用資源目錄路徑,不支持網絡地址,建議分辨率720x256(要求png格式,背景透明,留出邊距,在不同分辨率手機上會自動等比例縮放處理)
statusbar
應用啟動后的系統狀態欄樣式,包括以下字段:
-immersed:定義應用是否使用沉浸式狀態欄樣式,String類型:"none"非沉浸式狀態欄樣式(與之前Boolean類型的false一致);"suggestedDevice"沉浸式狀態欄,僅在支持設置狀態欄前景色樣式的設備上生效(Android5.0的小米&魅族、Android6.0及以上,iOS在所有設備上生效);"supportedDevice"沉浸式狀態欄,在所有支持沉浸式狀態欄設備上生效(與之前的true一致,Android4.4及以上);"true"沉浸式狀態欄樣式,系統狀態欄背景顏色透明(此時background屬性值無效),Webview窗口顯示在系統狀態欄下;"false"非沉浸式狀態欄樣式,由style和background決定。 默認值為"false"。
-style:系統狀態欄樣式(前景顏色),字符串類型,可取以下值:"dark"深色前景色樣式(即狀態欄前景文字為黑色),此時background建議設置為淺顏色;"light"淺色前景色樣式(即狀態欄前景文字為白色),此時background建設設置為深顏色。可通過plus.navigator.setStatusBarStyle()動態調整。注:Android5.0(小米&魅族)和Android6.0及以上系統支持,iOS7.0及以上系統支持
-background:系統狀態欄背景顏色,字符串類型,#RRGGBB格式,顏色值格式為"#RRGGBB",如"#FF0000"為紅色。默認使用系統樣式,通常iOS平台默認為light樣式;Android平台默認為dark(各ROM廠商存在差異)。可通過plus.navigator.setStatusBarBackground()動態調整。注:僅在immersed屬性值設置為false時有效
softinput
軟鍵盤相關配置,包括以下字段:
- navBar:軟鍵盤上導航條的顯示模式,字符串類型(僅iOS平台支持)
"auto"表示系統默認值(即顯示導航條);
"none"表示不顯示。
默認值為"auto" - auxiliary:是否開啟輔助輸入功能,Boolean類型
true表示開啟,false表示關閉,默認值為true - mode:彈出系統軟鍵盤模式,字符串類型
"adjustResize"表示彈出軟鍵盤時自動調整窗口大小;
"adjustPan"表示彈出軟鍵盤時自動移動滾動窗口使得輸入框可見(Android平台可能會出現軟鍵盤蓋住輸入框的情況)。
默認值為"ajustResize"。
注:僅Android平台生效,需提交雲端打包后才能生效,應用全局生效(不支持對單個窗口進行控制)。
(iOS平台可通過WebviewStyles的softinputMode屬性對單個窗口進行控制)
useragent
程序中http請求的userAgent信息,JSON格式對象,包括以下字段:
- value:userAgent值,字符串類型。
- concatenate:是否將value值作為追加值連接到默認userAgent值之后,true表示追加模式,若value不以空格字符開頭,則在其前面自動添加空格字符。默認為false,即覆蓋默認userAgent值。
cache
可選項,程序的緩存配置信息,JSON格式對象,包括以下字段:
- mode:Webview窗口默認使用的緩存模式,可取值: "default" - 根據cache-control決定是否使用緩存數據,如果存在緩存並且沒有過期則使用本地緩存資源,否則從網絡獲取; "cacheElseNetwork" - 只要存在緩存(即使過期)數據則使用,否則從網絡獲取; "noCache" - 不使用緩存數據,全部從網絡獲取; "cacheOnly" - 僅使用緩存數據,不從網絡獲取(注:如果沒有緩存數據則會導致加載失敗)。 默認使用"default"。
cers
可選項,程序的異常崩潰與錯誤報告系統配置信息,JSON格式對象,包括以下字段:
- crash:是否提交程序異常崩潰信息,true表示提交,false表示不提交,默認值為true。
kernel
可選項,Webview窗口使用的內核,JSON格式對象,包括以下字段:
- ios:iOS平台Webview窗口默認使用的內核,可取值:
"WKWebview" - 在iOS8.0及以上系統默認使用WKWebview內核;
"UIWebview" - 使用UIWebview內核。
默認值為UIWebview。
runmode
應用的運行模式,字符串類型,可取值:
- "normal":正常運行模式。
- "liberate":釋放資源運行模式,應用在第一次啟動時將解壓自帶資源到SDcard,正常情況不推薦使用該模式。該模式的缺點:第一次啟動更慢,耗費時間先解壓、容易被三方清理軟件清理。該模式有用的場景:此模式下File API才可正常訪問_www應用資源,以及在某些Android rom訪問本地頁面時url地址中包含?帶參數,但不推薦使用這種跨頁傳參方式,推薦使用其他方式跨頁傳參http://ask.dcloud.net.cn/article/288。
- wap2app 應用固定為 liberate,不支持自定義。
allowsInlineMediaPlayback
允許應用內video標簽非全屏播放,僅iOS平台有效,並且video標簽必須添加webkit-playsinline屬性,如下示例:
復制代碼<video controls="controls" src="http://.../x.mp4" webkit-playsinline>
error
定義窗口加載錯誤時的處理邏輯,其下包括以下字段:
- url:窗口加載錯誤時(如本地頁面不存在,或者無法訪問的網絡地址)跳轉的頁面地址,僅支持本地頁面地址。設置為“none”則關閉跳轉到錯誤頁面功能,此時頁面顯示Webview默認的錯誤頁面內容。默認使用5+ Runtime內置的錯誤頁。
ssl
配置應用ssl相關設置,包括以下字段:
- “untrustedca”:配置應用中https請求時,如果服務器返回非受信證書的處理邏輯,字符串類型,可取值:
"accept" - 接受此非受信證書,繼續訪問
"refuse" - 拒絕此非 受信證書,停止訪問
"warning" - 彈出警告提示框提醒用戶,由用戶確定是否繼續訪問。 默認值為"accept"。
launchwebview
應用首頁Webview的配置信息,包括以下字段:
- "overrideresource":配置應用首頁的攔截資源請求處理邏輯,可包含多條配置項,配置項json支持以下屬性
match: 區配攔截的資源url地址,支持正則表達式,與WebviewOverrideResourceOptions的match屬性功能一致
redirect: 攔截資源的重現向地址,僅支持本地資源地址,如"_www"、"_doc"、"_downloads"、"_documents"等開頭的路徑,與WebviewOverrideResourceOptions的redirect屬性功能一致
mime: 攔截資源的數據類型,RFC2045/RFC2046/RFC2047/RFC2048/RFC2049規范中定義的數據類型,與WebviewOverrideResourceOptions的mime屬性功能一致
encoding: 攔截資源的數據編碼,默認值"UTF-8",與WebviewOverrideResourceOptions的encoding屬性功能一致
header: 攔截資源的http頭數據,JSON格式數據,與WebviewOverrideResourceOptions的encoding屬性功能一致
注:以上配置項與Webview的overrideResourceRequest方法作用一致,配置項可參考http://www.dcloud.io/docs/api/zh_cn/webview.html#plus.webview.WebviewObject.overrideResourceRequest - "overrideurl":配置應用首頁的攔截鏈接請求處理邏輯,支持以下屬性
mode:攔截模式,可取值:
"allow":表示滿足match屬性定義的條件時不攔截url繼續加載,不滿足match屬性定義的條件時攔截url跳轉並觸發callback回調
"reject":表示滿足match屬性定義的提交時攔截url跳轉並觸發callback回調,不滿足match屬性定義的條件時不攔截url繼續加載
默認值為"reject"。
match:匹配攔截規則,支持正則表達式,默認值為對所有URL地址生效(相當於正則表達式“.*”)。 如果mode值為"allow"則允許區配的URL請求跳轉,mode值為"reject"則攔截區配的URL請求。
exclude:排除攔截理規則,可取值:
"none"表示不排除任何URL請求(即攔截處理所有URL請求)
"redirect"表示排除攔截處理301/302跳轉的請求(謹慎使用,非a標簽的href觸發的URL請求可能會誤判斷為302跳轉)
默認值為"none"。 - "titleNView":配置應用首頁的標題欄,配置此屬性則首頁顯示標題欄,支持以下屬性:
backgroundcolor:標題欄背景顏色,字符串類型,格式為“#RRGGBB”,默認值為灰黑色(#1B1A1F)
titletext:標題欄標題文字內容,默認值為當前加載頁面的標題
titlecolor:標題欄標題文字顏色,字符串類型,格式為“#RRGGBB”,默認值為白色(#FFFFFF)
secondwebview
應用雙首頁模式配置項,添加此字段則表明應用采用雙首頁模式運行,應用啟動除了創建默認入口頁外還創建第二個Webview,配置信息包括以下字段:
- "launch_path":第二個Webview加載的頁面地址,支持網絡地址和本地地址
- "id":第二個Webview窗口標識,默認值為%APPID%__second
- "mode":第二個Webview顯示模式,可取值:
"child":表示作為launchwebview的子窗口
"front":表示與launchwebview平級並在其前顯示
"behind":表示與launchwebview平級並在其后顯示
默認值為"front"。 - "height":第二個Webview窗口高度
- "injection":控制第二個Webview是否提前注入js, 包括all.js/wap2app.js/setJsXXX設置的js等,布爾類型:
true:提前注入,android平台則會攔截第一個網絡js資源請求,將要注入的js添加的網絡js數據前;iOS平台則會解析到第一個script節點時注入。
false:不提前注入,頁面加載完成后(loaded事件)再注入。
默認值為true。
注:Android提前注入的問題會影響頁面加載速度(大概在400ms左右);iOS提前注入的問題是會導致302調轉的攔截問題(wap2app可能出現白屏)。 - "overrideresource":配置應用首頁的攔截資源請求處理邏輯,可包含多條配置項,配置項json支持以下屬性
match: 區配攔截的資源url地址,支持正則表達式,與WebviewOverrideResourceOptions的match屬性功能一致
redirect: 攔截資源的重現向地址,僅支持本地資源地址,如"_www"、"_doc"、"_downloads"、"_documents"等開頭的路徑,與WebviewOverrideResourceOptions的redirect屬性功能一致
mime: 攔截資源的數據類型,RFC2045/RFC2046/RFC2047/RFC2048/RFC2049規范中定義的數據類型,與WebviewOverrideResourceOptions的mime屬性功能一致
encoding: 攔截資源的數據編碼,默認值"UTF-8",與WebviewOverrideResourceOptions的encoding屬性功能一致
header: 攔截資源的http頭數據,JSON格式數據,與WebviewOverrideResourceOptions的encoding屬性功能一致
注:以上配置項與Webview的overrideResourceRequest方法作用一致,配置項可參考http://www.dcloud.io/docs/api/zh_cn/webview.html#plus.webview.WebviewObject.overrideResourceRequest - "overrideurl":配置應用首頁的攔截鏈接請求處理邏輯,支持以下屬性
mode:攔截模式,可取值:
"allow":表示滿足match屬性定義的條件時不攔截url繼續加載,不滿足match屬性定義的條件時攔截url跳轉並觸發callback回調
"reject":表示滿足match屬性定義的提交時攔截url跳轉並觸發callback回調,不滿足match屬性定義的條件時不攔截url繼續加載
默認值為"reject"。
match:匹配攔截規則,支持正則表達式,默認值為對所有URL地址生效(相當於正則表達式“.*”)。 如果mode值為"allow"則允許區配的URL請求跳轉,mode值為"reject"則攔截區配的URL請求。
exclude:排除攔截理規則,可取值:
"none"表示不排除任何URL請求(即攔截處理所有URL請求)
"redirect"表示排除攔截處理301/302跳轉的請求(謹慎使用,非a標簽的href觸發的URL請求可能會誤判斷為302跳轉)
默認值為"none"。
confusion
應用的JS文件原生混淆配置
- “description”:原生混淆配置描述信息
- “resources”:要混淆的JS文件列表,JSON對象,以要混淆的js文件路徑(相對路徑)為鍵名,值為空JSON對象即可,如下示例:
復制代碼// ... “plus”: { // ... "confusion": { "description": "JS原生混淆", "resources": { "js/common.js": { }, "js/immersed.js": { } } } // ... } // ...
iOS平台打包配置信息
在plus->distribute->apple節點下保存iOS平台打包配置信息,用於定義iOS平台專用的應用特性。
appid
Apple appid,蘋果開發網站申請的appid,使用反向域名格式,如io.dcloud.hbuilder
devices
應用支持的設備類型,可取值iphone/ipad/universal,iphone表示僅支持iphone設備,安裝到iPad上將使用1x/2x模式運行;ipad表示僅支持ipad設備,此模式無法安裝到iphone設備;universal表示使用兼容模式,可兼容在iphone和ipad設備上正常運行,各自安裝設備的分辨率運行。
UIReserveStatusbarOffset
應用的區域是否預留系統狀態欄位置(應用區域通頂到系統狀態欄區域),僅iOS7及以上平台有效,Boolean類型,true表示預留系統狀態欄位置(不通頂),false表示不預留系統狀態欄位置(通頂),默認值為true。
UIStatusBarStyle
設置狀態欄的樣式,可取值UIStatusBarStyleBlackTranslucent/UIStatusBarStyleDefault/UIStatusBarStyleBlackOpaque,參考iOS平台設置系統狀態欄樣式及背景色
StatusBarBackground
設置狀態欄的背景顏色,iOS7以上系統有效,支持#RRGGBB格式,參考iOS平台設置系統狀態欄樣式及背景色
UIBackgroundModes
設置應用是否支持后台模式,可取值“audio”表示支持后台播放音樂,參考iOS切換到后台支持音樂播放功能
urltypes
設置應用的url schemem,參考iOS平台通過UrlSchemes與第三方應用相互調用
frameworks
設置應用要應用的系統framework,在使用native.js時使用,通知App雲端打包在編譯應用時引用對於的系統framework庫,以便native.js能成功調用其中的API。
Android平台打包配置信息
在plus->distribute->google節點下保存Android平台打包配置信息,用於定義Android平台專用的應用特性。
packagename
應用的包名,使用反向域名格式,如io.dcloud.hbuilder
hardwareAccelerated
"Boolean類型,是否開啟硬件加速,true表示開啟,false表示關閉,參考Android平台配置硬件加速
custompermissions
Boolean類型,是否自定義android權限,true表示自定義權限,只使用permissions下指定的android權限,不根據用戶使用的5+模塊自動添加android權限,false表示自動根據用戶使用的5+模塊自動添加android權限。
參考Android平台指定程序使用的權限
permissions
字符串數組,要添加的Android權限列表。
參考Android平台指定程序使用的權限
schemes
字符串數據,程序需要向系統注冊的urlscheme。
參考Android平台通過UrlSchemes與第三方應用相互調用
adid
廣告聯盟會員id,開發者向廣告聯盟后台申請后填寫
theme
字符串,程序要使用的系統主題名稱
參考Android配置應用主題皮膚
android:name
字符串,程序主入口類名,僅使用5+SDK二次擴展時用到