PWA settings
The PWA settings tab — icon, iOS interaction, push prompt, webview bypass, manifest, appearance, and similar apps.
The PWA settings tab contains five blocks (home-screen icon, iOS interaction, notification prompt, open in browser, manifest), the Appearance subtab, and the Similar tab. Push and webview copy is language-specific.
Home-screen icon
| Field | Type | What it controls | Default |
|---|---|---|---|
| Use a separate icon | switch | Lets you set an “Add to Home Screen” icon that differs from the PWA page icon | disabled |
| Icon | upload (1:1 crop) | Custom icon file | — |
When the switch is disabled or no file is uploaded, darkcore does not add an icon to manifest.json or <head>. The browser or OS uses its own standard appearance. When a separate icon exists, the preview shows three masking forms: Circle (Pixel), Rounded square (Samsung), and Rounded (iOS).
iOS interaction
This block belongs to the PWA. A stream only selects the PWA as a rule target and does not change its iOS flow.
| iOS mode | Flow |
|---|---|
| Landing | Shows the PWA. In Safari, the visitor can add it to the Home Screen. Closing the instruction does not open the offer. |
| Direct redirect | Takes the visitor to the offer immediately, without showing the PWA. |
| Hybrid | “Download” → animation → “Open” → offer. There is no automatic transition after the animation or after closing the prompt. |
For Direct redirect and Hybrid, the Fire Lead on redirect without install option is available. In Hybrid mode, tapping Open is classified as a redirect without install.
Migration of older settings
During migration, old stream-level values were copied to a PWA only when every stream using that PWA had the same explicit values and the PWA did not already have its own value. Otherwise, the safe PWA default remains in effect.
Notification prompt (push pre-prompt)

| Field | Type | What it controls | Default |
|---|---|---|---|
| Enabled | switch | Show a pre-prompt before the system request | enabled |
| Prompt style | select | Modal / Top banner / Bottom banner / Native (without pre-prompt) | Modal |
| Display trigger | select | On load / With delay / After install click / On Install click / After % scroll / On exit | With delay |
| Delay (seconds) | number 0–30 | Wait before display (only for “With delay”) | 2 |
| After decline | select | Never show again / Every visit / Remind again / Every N days | Never show again |
| Interval (days) | number 1–30 | For the “Every N days” strategy | 3 |
| Title / Text | localized text | Prompt copy | placeholders |
| Accept / decline button | localized text | Button copy | “Allow” / “Later” |
| Prompt icon | upload (1:1) | Icon in the prompt (fallback: app icon) | — |
| Background dimming | switch | Overlay behind the modal (Modal style only) | enabled |
| Close on outside click | switch | Allows closing by clicking outside the modal | enabled |
The Native style opens the browser's system dialog directly. It requires a user gesture, so only “After install click” and “On Install click” triggers are available. Browsers silently block the other triggers.
Open in browser (webview bypass)
The in-app browsers in Instagram, Facebook, and TikTok do not allow a full PWA installation. Webview bypass recognizes such a browser and gives traffic a short path to Chrome or Safari. Configure the appearance of this screen here.
| Field | Type | What it controls | Default |
|---|---|---|---|
| Title / Text / Button text | localized text | Copy for the fallback screen (empty = default) | placeholders |
| Background dimming | switch | Translucent background behind the modal | enabled |
| Allow modal dismissal | switch | Whether the modal can be closed while remaining in the in-app browser | enabled |
How webview exit works
| Platform | Primary scenario | If automatic exit does not work |
|---|---|---|
| Android | The page tries to open the current URL in Chrome through a system intent | It shows a reopen button, then a URL that can be copied or opened manually |
| iOS | The page tries to open Safari and copies the current URL | It shows a ready link and instructions to copy it, open Safari, and paste it into the address bar |
Automatic handoff can fail when an in-app browser blocks external schemes without a user gesture, Chrome/Safari is unavailable as the expected browser, the OS disallows clipboard access, or the app's own policy blocks opening. That is why the modal does not rely on a redirect alone: it retains a button, visible URL, and manual path.
This modal preserves installation even in restrictive webviews where a normal automatic redirect simply stops. Many PWA solutions leave traffic inside Facebook or Instagram with no clear next action; darkcore immediately provides a working fallback for Android and iOS.
PWA manifest
Writes the manifest.json served by traffic-engine.
| Field | Type | What it controls | Limit |
|---|---|---|---|
| Short name | text | Name under the icon when the full name does not fit | up to 12 characters |
| Theme color | “Match device theme” switch + hex | Browser chrome / task-switcher color | #RRGGBB |
| Background color | hex | Splash-screen background | #RRGGBB |
| Description | textarea | description in the manifest | up to 300 characters |
By default, theme color uses “Match device theme” (auto, follows the light/dark device theme). Disable it to set your own colors.
Appearance
| Field | Type | What it controls | Default |
|---|---|---|---|
| Action color | hex | One CTA color inherited by all modal buttons (push, webview, install) | #1a73e8 |
| Theme | select | Light / Dark / Auto — the PWA page theme | Auto |
The “Install” button always keeps its Play Market style. Action color does not affect it.
Similar apps
The Similar tab lets you link other PWAs in this workspace. They appear in a “Similar apps” block on the installation page. Search and add/remove them from the list; the current app excludes itself.