Skip to content

ArcGIS QuickCapture

ArcGIS QuickCapture is Esri's rapid field data collection app. Protocol Launcher allows you to generate ArcGIS QuickCapture launch links.

Usage

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

URL Methods

Esri documents two QuickCapture launch methods: QuickCapture links that begin with https://quickcapture.arcgis.app and custom URL scheme links that begin with arcgis-quickcapture://. Both methods support the same mobile app parameters.

This module exposes only the documented parameters: itemID, portalUrl, externalBrowserSignIn, center, callback, action=press:<button GUID>, field:<field name>, and userInput:<input id>.

Launch URL Scheme

Launch QuickCapture with the documented custom URL scheme.

On-Demand
ts
import { launchUrlScheme } from 'protocol-launcher/arcgis-quickcapture'

const url = launchUrlScheme({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  userInputs: { '001': 'Alice' },
})

Launch QuickCapture with the documented app link for iOS and Android.

On-Demand
ts
import { launchAppLink } from 'protocol-launcher/arcgis-quickcapture'

const url = launchAppLink({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  userInputs: { '001': 'Alice' },
})

Open Project

Open a QuickCapture project by project item ID.

On-Demand
ts
import { openProject } from 'protocol-launcher/arcgis-quickcapture'

const url = openProject({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  center: '37.8199,-122.4783,20',
})

Open Portal

Open QuickCapture for a specific ArcGIS portal and optionally request external-browser sign-in.

On-Demand
ts
import { openPortal } from 'protocol-launcher/arcgis-quickcapture'

const url = openPortal({
  portalUrl: 'https://myorg.arcgis.com',
  externalBrowserSignIn: true,
})

Press Button

Press a QuickCapture button by its documented button GUID and optionally populate field values.

On-Demand
ts
import { pressButton } from 'protocol-launcher/arcgis-quickcapture'

const url = pressButton({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  buttonID: '0c59c9d9-9b51-46b3-bb81-21149e6fddb4',
  fields: { diameter: '20' },
  callback: 'https://survey123.arcgis.app',
})

Populate User Input

Open a QuickCapture project with documented project user input values.

On-Demand
ts
import { populateUserInput } from 'protocol-launcher/arcgis-quickcapture'

const url = populateUserInput({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  userInputs: {
    '001': 'Alice',
    '002': 'Zone5',
  },
})

Generated URLs

ts
launchUrlScheme({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  userInputs: { '001': 'Alice' },
})
// => 'arcgis-quickcapture://?itemID=aabda4a5e36d42c2bcf1c479fe01e5e3&userInput:001=Alice'

launchAppLink({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  userInputs: { '001': 'Alice' },
})
// => 'https://quickcapture.arcgis.app/?itemID=aabda4a5e36d42c2bcf1c479fe01e5e3&userInput:001=Alice'

openProject({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  center: '37.8199,-122.4783,20',
})
// => 'arcgis-quickcapture://?itemID=aabda4a5e36d42c2bcf1c479fe01e5e3&center=37.8199%2C-122.4783%2C20'

openPortal({
  portalUrl: 'https://myorg.arcgis.com',
  externalBrowserSignIn: true,
})
// => 'arcgis-quickcapture://?portalUrl=https%3A%2F%2Fmyorg.arcgis.com&externalBrowserSignIn=true'

pressButton({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  buttonID: '0c59c9d9-9b51-46b3-bb81-21149e6fddb4',
  fields: { diameter: '20' },
  callback: 'https://survey123.arcgis.app',
})
// => 'arcgis-quickcapture://?itemID=aabda4a5e36d42c2bcf1c479fe01e5e3&action=press%3A0c59c9d9-9b51-46b3-bb81-21149e6fddb4&field:diameter=20&callback=https%3A%2F%2Fsurvey123.arcgis.app'

populateUserInput({
  itemID: 'aabda4a5e36d42c2bcf1c479fe01e5e3',
  userInputs: { '001': 'Alice', '002': 'Zone5' },
})
// => 'arcgis-quickcapture://?itemID=aabda4a5e36d42c2bcf1c479fe01e5e3&userInput:001=Alice&userInput:002=Zone5'

Official Documentation