# Web Browsing (/docs/settings/web-browsing)





## 1. Allow Refresh [#1-allow-refresh]

Set to true to allow the user to refresh the page, e.g. using the

* address bar actions
* kiosk control panel
* pull to refresh (can be configured separately)

**Default:** true

## 2. Allow Pull to Refresh [#2-allow-pull-to-refresh]

Set to true to allow the user to refresh the page by pulling down
from the top 1/4 of the screen.

Note that this requires:

* the `Allow Refresh` setting to also be true
* the page to have been scrolled fully to the top prior to the gesture
* a single finger (touch) is used

**Default:** true

## 3. Allow Backwards Navigation [#3-allow-backwards-navigation]

Set to true to allow the user to go back one page in history.

This also enables forward navigation.

**Default:** true

## 4. Allow Go Home [#4-allow-go-home]

Set to true to allow the user to go home using one of:

1. Tapping the top-left quadrant of the screen 10 times in quick succession (opens Kiosk Control Panel)
2. Holding the back button (long-pressed). For more details, see `Settings -> Device`
3. Clicking the <span className="inline-flex">(<EllipsisVertical />)</span> icon on the right of the address bar (top-right corner of screen) and selecting `Home`
4. Clicking the floating toolbar <span className="inline-flex">(<Wrench className="-rotate-90" />)</span> icon and selecting `Home`
5. Clicking your device's home button
   * This requires Webview Kiosk to be set as the **default launcher (home) app**

**Default:** true

## 5. Clear History on Home [#5-clear-history-on-home]

Set to true if you want to clear the backwards/forward navigation history
whenever a `Go Home` action is triggered.

**Default:** false

## 6. Replace History URL on Redirect [#6-replace-history-url-on-redirect]

Set to true to replace the current history entry with the final URL if
any page redirections occurs, rather than adding multiple entries to the
history navigation stack.

**Default:** true

## 7. Allow History Access [#7-allow-history-access]

Set to true to allow viewing and navigating back in history, by
clicking the <span className="inline-flex">(<EllipsisVertical />)</span> icon
on the right of the address bar (top-right corner of screen) and selecting `History`.

**Default:** true

## 8. Allow Bookmark Access [#8-allow-bookmark-access]

Set to true to allow viewing and navigating to bookmarks configured in settings, by
clicking the <span className="inline-flex">(<EllipsisVertical />)</span> icon
on the right of the address bar (top-right corner of screen) and selecting `Bookmark`.

**Default:** true

## 9. Allow Other URL Schemes [#9-allow-other-url-schemes]

Allow the handling of non-http/https URL schemes (i.e. intents) such as
`intent:`, `mailto:`, `sms:`, `tel`:, `spotify:`, `whatsapp:`, `unifiedpush:`,
etc in other apps.

When in Lock Task Mode, the apps responsible for handling these intents needs
to be present in the Lock Task Permitted list under the device owner settings
to function.

**Default:** false

## 10. Allow Default Long Press [#10-allow-default-long-press]

When enabled, long-pressing areas in the WebView will trigger the native
WebView behaviour, e.g. text selection.

Specifically for links, even if set to false, this setting can be overridden
by the `Allow Link Long Press Context Menu` setting.

**Default:** true

## 11. Allow Link Long Press Context Menu [#11-allow-link-long-press-context-menu]

When enabled, long-pressing links or images will trigger a custom context menu.

This will take precedence over the `Allow Default Long Press` setting
(i.e. overrides it).

For links, the options are:

* Copy Link
* Open Link
* Open in Browser (when unlocked)
* Share Link (when unlocked)

For images, there is an additional option:

* Download Image (requires `web_engine.allow_file_download`)

**Default:** true

## 12. Override URL Loading Block Action [#12-override-url-loading-block-action]

Action to take when a URL navigation (via [shouldOverrideUrlLoading](https://developer.android.com/reference/android/webkit/WebViewClient#shouldOverrideUrlLoading\(android.webkit.WebView,%20android.webkit.WebResourceRequest\)]))
matches the blacklist regex.

Typically, this is from clicking links (`<a>` tags) on a webpage's HTML.

| Action             | Description                                  |
| ------------------ | -------------------------------------------- |
| Show Block Page    | Display a HTML block page                    |
| Prevent Navigation | Does nothing when links are clicked          |
| Show Toast         | Shows a toast with your custom block message |

This option will NOT take effect for:

* JavaScript navigation
* Custom URL loading, e.g. from the Address Bar, Bookmarks, History, etc

In those other cases, the block page will simply be shown.

**Default:** Show Block Page

## 13. Address Bar Actions [#13-address-bar-actions]

This setting is only controlling the UI aspect of the Address Bar.

Access will still need to be enabled using the dependent settings.

See the `Settings Web Browsing -> Kiosk Control Panel Actions` for a list of
available actions.

## 14. Kiosk Control Panel Region [#14-kiosk-control-panel-region]

Controls which part of the screen can be multi-tapped 10 times in quick
succession to show the Kiosk Control Panel dialog.

Available regions are:

<table>
  <thead>
    <tr>
      <th>
        Region
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Top Left
      </td>

      <td>
        Upper-left quadrant of the screen.
      </td>
    </tr>

    <tr>
      <td>
        Top Right
      </td>

      <td>
        Upper-right quadrant of the screen.
      </td>
    </tr>

    <tr>
      <td>
        Bottom Left
      </td>

      <td>
        Lower-left quadrant of the screen.
      </td>
    </tr>

    <tr>
      <td>
        Bottom Right
      </td>

      <td>
        Lower-right quadrant of the screen.
      </td>
    </tr>

    <tr>
      <td>
        Top
      </td>

      <td>
        Upper half of the screen.
      </td>
    </tr>

    <tr>
      <td>
        Bottom
      </td>

      <td>
        Lower half of the screen.
      </td>
    </tr>

    <tr>
      <td>
        Full
      </td>

      <td>
        Entire screen.
      </td>
    </tr>

    <tr>
      <td>
        Disabled
      </td>

      <td>
        Do nothing on multi-tap. Please note that if both of the following
        are true:

        <ol>
          <li>
            <b>Web Browsing -> Kiosk Control Panel Region</b> is <i>disabled</i>
          </li>

          <li>
            <b>Device -> Back Button Hold Action</b> is not set to <i>Open Kiosk Control Panel</i>
          </li>
        </ol>

        Then this option cannot be disabled, and will default to Top Left.
      </td>
    </tr>
  </tbody>
</table>

At the top-right corner of the dialog, there is an icon button that toggles the stickiness
Kiosk Control Panel's stickiness behaviour. By default, sticky mode is disabled
<span className="inline-flex">(<PinOff />)</span>.
When enabled <span className="inline-flex">(<Pin />)</span>, clicking on the
action buttons will not automatically close the dialog.

You can also disable this setting and instead configure
`Device -> Back Button Hold Action` to open the Kiosk Control Panel.

**Default:** Top left

## 15. Kiosk Control Panel Actions [#15-kiosk-control-panel-actions]

This setting is only controlling the UI aspect of the Kiosk Control Panel.
Access will still need to be enabled using the dependent settings.

The following actions are available to be configured (remove or rearrange):

<table>
  <thead>
    <tr>
      <th>
        Action
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Navigation
      </td>

      <td>
        Combination of <code>Back</code> and <code>Forward</code> buttons side-by-side.

        Requires <code>Web Browsing -> Allow Backwards Navigation</code>
      </td>
    </tr>

    <tr>
      <td>
        Back
      </td>

      <td>
        Navigates one page backwards in history.

        Requires <code>Web Browsing -> Allow Backwards Navigation</code>
      </td>
    </tr>

    <tr>
      <td>
        Forward
      </td>

      <td>
        Navigates one page forward in history.

        Requires <code>Web Browsing -> Allow Backwards Navigation</code>
      </td>
    </tr>

    <tr>
      <td>
        Home
      </td>

      <td>
        Navigates to the home page.

        Requires <code>Web Browsing -> Allow Go Home</code>
      </td>
    </tr>

    <tr>
      <td>
        Refresh
      </td>

      <td>
        Perform a reload on the current webpage.

        Requires <code>Web Browsing -> Allow Refresh</code>
      </td>
    </tr>

    <tr>
      <td>
        History
      </td>

      <td>
        Opens the history dialog.

        Requires <code>Web Browsing -> Allow History Access</code>
      </td>
    </tr>

    <tr>
      <td>
        Bookmark
      </td>

      <td>
        Opens the bookmark dialog.

        Requires <code>Web Browsing -> Allow Bookmark Access</code>
      </td>
    </tr>

    <tr>
      <td>
        Files
      </td>

      <td>
        Opens the local files dialog.

        Requires <code>Web Content -> Allow Local Files</code>
      </td>
    </tr>

    <tr>
      <td>
        Find
      </td>

      <td>
        Opens a search bar to find matching text on the page.
      </td>
    </tr>

    <tr>
      <td>
        Scroll Top
      </td>

      <td>
        Scrolls to the top of the page.
      </td>
    </tr>

    <tr>
      <td>
        Scroll Bot
      </td>

      <td>
        Scrolls to the bottom of the page.
      </td>
    </tr>

    <tr>
      <td>
        Apps
      </td>

      <td>
        Opens a dialog allowing you to launch other apps.

        When in lock task mode (kiosk), the following are required to launch apps:

        <ol>
          <li>
            Your device is on Android 9+ (SDK/API level 28+)
          </li>

          <li>
            Webview Kiosk

             is lock task permitted
          </li>

          <li>
            The target app is lock task permitted
          </li>

          <li>
            <code>Lock Task Feature -> HOME</code>

             is enabled
          </li>
        </ol>

        The last condition helps avoid being trapped in lock task mode. It
        enables the use of the home button to open your default launcher
        (which *may* show an error that you can safely dismiss).
        From the launcher, you can find and open Webview Kiosk to unlock the kiosk.

        You may want to also consider:

        <ol>
          <li>
            Granting notifications permission to 

            Webview Kiosk
          </li>

          <li>
            Enabling 

            <code>Lock Task Feature -> NOTIFICATIONS</code>
          </li>

          <li>
            Setting 

            Webview Kiosk

             as the default launcher
          </li>
        </ol>

        The first two suggestions is to display the foreground service
        notification in lock task mode. Tapping on the notification will
        return you to Webview Kiosk.

        Please note that for user-owned devices utilising "Screen Pinning"
        mode, app launching is not supported.
        Refer to the <a href="/docs/security">Security</a>
        documentation for further details.
      </td>
    </tr>

    <tr>
      <td>
        Settings
      </td>

      <td>
        Open the app settings screen. By default, this action is not configured.

        This will always be visible if <code>Appearance -> Floating Toolbar
        Mode</code> is set to Hidden, and will be appended to the end if not
        configured.
      </td>
    </tr>

    <tr>
      <td>
        Lock
      </td>

      <td>
        Trigger either screen pinning or lock task mode.
      </td>
    </tr>

    <tr>
      <td>
        Unlock
      </td>

      <td>
        Trigger screen unpinning or unlock task. Will require biometrics or
        device credentials to succeed.

        This action will always be visible when the device is in locked mode,
        and will be appended to the end if not configured.
      </td>
    </tr>
  </tbody>
</table>

## 16. Search Provider URL [#16-search-provider-url]

The URL used for search queries in the address bar. This URL must include the
search string query parameter.

For example,

| Provider    | Search URL                           |
| ----------- | ------------------------------------ |
| Google      | `https://google.com/search?q=`       |
| DuckDuckGo  | `https://duckduckgo.com/?q=`         |
| Bing        | `https://bing.com/search?q=`         |
| Yahoo       | `https://search.yahoo.com/search?p=` |
| Startpage   | `https://startpage.com/do/search?q=` |
| Ecosia      | `https://ecosia.org/search?q=`       |
| Unduck      | `https://unduck.link?q=`             |
| Unduckified | `https://s.dunkirk.sh?q=`            |

**Default:** [https://duckduckgo.com?q=](https://duckduckgo.com?q=)

## 17. Search Suggestion Engine [#17-search-suggestion-engine]

Configure the search engine for text suggestions (autocomplete/hints)
when typing in the address bar.

For example, when searching for "new", you may get suggested

* news
* new recipes
* new york times

Supported options are:

| Engine     | Endpoint                                                                     |
| ---------- | ---------------------------------------------------------------------------- |
| None       | No search suggestions/autocomplete will be shown                             |
| Google     | `https://suggestqueries.google.com/complete/search?client=firefox&q=`        |
| DuckDuckGo | `https://duckduckgo.com/ac?q=`                                               |
| Yahoo      | `https://api.search.yahoo.com/sugg/gossip/gossip-in-ura?output=sd1&command=` |

**Default:** NONE
