Skip To Content
ArcGIS Developer
Dashboard

App configuration

There are three main app properties: map, widgetOnScreen, and widgetPool. The following table describes the attributes for app configuration.

AttributesDescription

theme

Object. Theme has three properties:

  • name—The name of the theme.
  • styles—All styles of the theme. The viewer uses the first style. If omitted, the viewer will not load the theme.
  • version—The version of the theme.
  • sharedTheme
    • isPortalSupport—Determines whether the portal supports a shared theme.
    • useHeader—Determines whether the header configuration is used in the portal organization setting.
    • useLogo—Determines whether the logo configuration is used in the portal organization setting.
 "theme": {
    "name": "FoldableTheme",
    "styles": [],
    "version": "1.0",
  },

httpProxy

String. This can be proxy.jsp, proxy.php, or proxy.asp, depending on the web server. The default is true. httpProxy has the following properties:

  • userProxy
  • alwaysUseProxy
  • url
  • rules—Has two properties: urlPrefix and proxyUrl
 "httpProxy": {
    "useProxy": true,
    "alwaysUseProxy": false,
    "url": "",
    "rules": [{
      "urlPrefix": "",
      "proxyUrl": ""
    }]
  },
See Use proxy.

portalUrl

String. If the viewer integrates with the portal, set the portal URL here.

"portalUrl": "http://mypc.com/arcgis/",

appId

String. Required for OAuth 2 login.

"appId": "Aks2nqiYIq9mClNt"

logo

String. URL points to the logo file.

 "logo": "",

title

String. The title of the app.

"title": "ArcGIS Web Application",

subtitle

String. The subtitle of the app.

"subtitle": "A configurable web application",

links

Sets links to other resources. Each link has two properties: URL and label.

 "links":[
    {
      "url": "http://www.arcgis.com",
      "label": "ArcGIS Online"
    }
  ],

map

See the map's configuration.

WidgetOnScreen

Object. Can contain some widgets and widget groups. All the widgets and groups in this object load when the app starts. See Widget on-screen configuration.

widgetPool

Object. Can contain some widgets and widget groups. All the widget groups in this object will not load by default. These widgets are controlled by controller widgets, which can read this configuration while starting and closing the widgets by sending messages to the app. See Widget pool configuration.

isWebTier

Optional—Boolean. Determines whether web-tier authentication is used for the ArcGIS Enterprise portal. The default is false.

geometryService

String. The URL of the geometry service used by widgets and the web map. If not set, it reads from the portal.

wabVersion

String. The app's configuration version.

loadingPage

Optional—Object. Only valid in the developer edition. Any property changes on the object do not affect the loading page. The configuration of the loading page is saved in it, and the code of the loading page is generated when the app is saved.

mobileLayout

Object—Defines the app layout on a mobile device. Currently the app switches to mobile mode when the browser's width and height are less than 600 pixels.

The content of the property is the same as the app configuration except that it only contains the position of the on-screen widget and group. To define the position of the widget and group, see the Create the layouts section in Create a theme.

If a widget or group is not defined in mobileLayout, it will use the position defined in app config.

templateConfig

Optional—Object. Only valid for the template and template app. It stores the template configuration and has the same properties as ArcGIS Online templates. See Add configurable parameters to templates.

isTemplateApp

Boolean. Determines whether the app is created from a template.

authorizedCrossOriginDomains

Array. Stores portal or server domains that use web-tier authentication.

Caution:

By default, Web AppBuilder reads the value of authorizedCrossOriginDomains from your portal and saves it in the app config file. If you want to change the value of authorizedCrossOriginDomains in the config file, go to your portal organization page and make the update. App config will sync the change when you save the app.

appProxies

Array. The array of proxy items for specific URLs. Each proxy item contains the following parameters:

  • sourceUrl—String. The URL of the premium service.
  • title—String. The label for the source URL.
  • consumeCredits—Boolean. Determines whether this service consumes credits.
  • proxyUrl—String. The proxy URL for the source URL.
  • proxyId—String. The proxy ID registered in ArcGIS Online.
  • useProxy—Boolean. Determines whether the proxy URL replaces the source URL.
"appProxies": [
        {
          "sourceUrl": "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",
          "title": "Test Proxy url",
          "consumeCredits": true,
           "useProxy": true,
          "proxyUrl": "http://utility.arcgis.com/usrsvcs/appservices/RPSyFj4IiBPxqMbd/rest/services/World/Route/NAServer/Route_World",
          "proxyId": "RPSyFj4IiBPxqMbd"
        }
      ]

layoutDefinition

Object. Defines the layout of the on-screen widget and map. If this property does not exist, use jimu.js/layoutManagers/AbsolutePositionManager, which is the layout manager that Web AppBuilder has been using.

It has the following two properties:

  • manager—String. The layout manager defines how to manage the layout of on-screen widgets or groups. There are two layout managers: AbsolutePositionManager and GridLayoutManager.
  • layout—Object. The layout structure depends on the manager.

dataSource

Object. Defines the data sources in the app. There are two data sources: widget data source and extra data source.

  • dataSources—Object. All data sources configured in the app use the data source ID as the property of this object.
  • settings—The data source setting has one property: unifiedRefreshInterval. If the value of this property is not zero, all dynamic data sources will be refreshed on this interval. The unit is minutes.

keepAppState

Optional - Boolean. If true, the current map extent and the layer visibility will be kept before you leave the app so you can see the same map extent and layer visibility when open the app next time.