Basic Cordova setup

Cordova Requirements

You need to install an inappbrowser plugin.

cordova plugin add cordova-plugin-inappbrowser

For future versions of the plugin, you need to redefine the window.open method.

window.open = cordova.InAppBrowser.open;

File Layout

It is better to save all assets for a mobile application in the app bundle.
You can download the latest compiled widget and place it inside your www folder, for example in the www/js/uploadcare-widget folder.

The minimal widget version which properly works with Cordova is 2.5.7.

Widget Inclusion and Options

You can use relative paths to the widget in the script tag:

After that, you need to set the following options:

UPLOADCARE_PUBLIC_KEY = 'demopublickey';
UPLOADCARE_SCRIPT_BASE = 'js/uploadcare-widget/';
UPLOADCARE_PASS_WINDOW_OPEN = true;

The first line is the public key; the second line is the path to widget assets; the third is a line for authentication handling for social networks and cloud storages.

Content Security Policy

Most of Cordova applications use content security policy to restrict access to unwanted resources. There is a minimal set of rules needed for the widget:

<meta http-equiv="Content-Security-Policy" content="
    default-src 'self';
    style-src 'unsafe-inline';
    frame-src gap: https://social.uploadcare.com;
    img-src 'self' data: https://ucarecdn.com/;
    connect-src https://upload.uploadcare.com ws://ws.pusherapp.com;
">

Or just in one default-src:

<meta http-equiv="Content-Security-Policy" content="
    default-src 'self' gap: data: 'unsafe-inline' https://ucarecdn.com/
        https://social.uploadcare.com https://upload.uploadcare.com ws://ws.pusherapp.com;
">