npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

com-easystep2-datawedge-plugin-intent-cordova

v4.4.3

Published

Cordova plugin for Android Intents and Zebra DataWedge

Readme

Please be aware that this application / sample is provided as-is for demonstration purposes without any guarantee of support

EasyStep2 DataWedge Plugin Intent

This is an updated and maintained version of the original darryncampbell-cordova-plugin-intent plugin, now named com.easystep2.datawedge.plugin.intent-cordova.

npm version

Enhancements by EasyStep2

  • Fixed compatibility issues with Angular 14+
  • Support for both Cordova and Capacitor in a single package
  • Regularly updated and maintained

The original plugin badges are preserved for reference:

Original npm version Original npm downloads Original npm total downloads Original npm licence

Note: the original plugin was the underlying implementation for https://www.npmjs.com/package/@ionic-native/web-intent and https://ionicframework.com/docs/native/web-intent/

Android X support

  • For Android X Support please use version >= 2.x.x
  • For Android Support Library please refer to the original plugin version 1.3.x

Interaction with Camera Plugin

If you are installing this plugin along with cordova-plugin-camera you MUST install cordova-plugin-camera first.

Overview

This Cordova plugin provides a general purpose shim layer for the Android intent mechanism, exposing various ways to handle sending and receiving intents.

Credits

This project is based on code released under the following MIT projects:

  • https://github.com/darryncampbell/darryncampbell-cordova-plugin-intent
  • https://github.com/napolitano/cordova-plugin-intent (marked as no longer maintained)
  • https://github.com/Initsogar/cordova-webintent.git (no longer available on github but the project is forked here: https://github.com/darryncampbell/cordova-webintent)

This project is also released under MIT. Credit is given in the code where appropriate.

IntentShim

This plugin defines a window.plugins.intentShim object which provides an API for interacting with the Android intent mechanism on any Android device.

Testing / Example

An example application is available at https://github.com/darryncampbell/plugin-intent-api-exerciser to demonstrate the API and can be used to test the functionality.

Installation

Cordova

# Install from npm
npm install com-easystep2-datawedge-plugin-intent-cordova
cordova plugin add com-easystep2-datawedge-plugin-intent-cordova

# Or install directly from GitHub
cordova plugin add https://github.com/easystep2/easystep2-datawedge-plugin-intent.git

Ionic Capacitor

# Install from npm
npm install com-easystep2-datawedge-plugin-intent-capacitor

# Or install directly from GitHub
npm install https://github.com/easystep2/easystep2-datawedge-plugin-intent.git

# Then sync your project
npx cap sync

Uninstallation

Cordova

cordova plugin remove com-easystep2-datawedge-plugin-intent-cordova
npm uninstall com-easystep2-datawedge-plugin-intent-cordova

Ionic Capacitor

npm uninstall com-easystep2-datawedge-plugin-intent-capacitor
npx cap sync

Package Architecture

This project has been restructured to support both Cordova and Capacitor applications from a single codebase, with specific npm packages for each platform.

Support for Multiple Platforms

The plugin provides:

  • com-easystep2-datawedge-plugin-intent-cordova for Cordova projects
  • com-easystep2-datawedge-plugin-intent-capacitor for Capacitor projects
  • Consistent API across both platforms
  • Simplified maintenance and updates

Migration from Previous Versions

If you were previously using a different version:

# For Cordova projects
cordova plugin remove com.easystep2.datawedge.plugin.intent
npm uninstall com.easystep2.datawedge.plugin.intent
npm install com-easystep2-datawedge-plugin-intent-cordova
cordova plugin add com-easystep2-datawedge-plugin-intent-cordova

# For Capacitor projects
npm uninstall com.easystep2.datawedge.plugin.intent
npm install com-easystep2-datawedge-plugin-intent-capacitor
npx cap sync

Version Bump Guidelines

When bumping versions, follow semantic versioning:

  • MAJOR: Breaking changes
  • MINOR: New features without breaking changes
  • PATCH: Bug fixes without breaking changes

Troubleshooting

Common Issues

  • Intent not firing: Verify your broadcast receiver is properly registered
  • Data not received: Check your intent extras format and data types
  • Conflicts with other plugins: Install this plugin after other intent-related plugins
  • Angular issues: For Angular 14+, use version 2.x.x or later

DataWedge Specific Issues

If you're using this plugin with Zebra DataWedge:

  • Ensure your DataWedge profile is configured correctly
  • Verify the intent output is enabled
  • Confirm the intent action and category match your registration

Platform-Specific Issues

  • Cordova: If you experience issues with older Cordova versions, check compatibility in the plugin.xml
  • Capacitor: For Capacitor 3+, ensure you're using plugin version 2.x.x or higher

Debug Mode

Enable debug mode for more verbose logging:

window.plugins.intentShim.setDebugMode(true);

Supported Platforms

  • Android

intentShim.registerBroadcastReceiver

Registers a broadcast receiver for the specified filters

window.plugins.intentShim.registerBroadcastReceiver(filters, callback);

Description

The intentShim.registerBroadcastReceiver function registers a dynamic broadcast receiver for the specified list of filters and invokes the specified callback when any of those filters are received

Example

Register a broadcast receiver for two filters:

window.plugins.intentShim.registerBroadcastReceiver({
    filterActions: [
        'com.easystep2.datawedge.plugin.broadcastIntent.ACTION',
        'com.easystep2.datawedge.plugin.broadcastIntent.ACTION_2'
        ]
    },
    function(intent) {
        console.log('Received broadcast intent: ' + JSON.stringify(intent.extras));
    }
);

intentShim.unregisterBroadcastReceiver

Unregisters any BroadcastRecivers

window.plugins.intentShim.unregisterBroadcastReceiver();

Description

The intentShim.unregisterBroadcastReceiver function unregisters all broadcast receivers registered with intentShim.registerBroadcastReceiver(filters, callback);. No further broadcasts will be received for any registered filter after this call.

Android Quirks

The developer is responsible for calling unregister / register when their application goes into the background or comes back to the foreground, if desired.

Example

Unregister the broadcast receiver when the application receives an onPause event:

bindEvents: function() {
    document.addEventListener('pause', this.onPause, false);
},
onPause: function()
{
    window.plugins.intentShim.unregisterBroadcastReceiver();
}

intentShim.sendBroadcast

Sends a broadcast intent

window.plugins.intentShim.sendBroadcast(action, extras, successCallback, failureCallback);

Description

The intentShim.sendBroadcast function sends an Android broadcast intent with a specified action

Example

Send a broadcast intent to a specified action that contains a random number in the extras

window.plugins.intentShim.startActivity(
    {
        action: "com.easystep2.datawedge.plugin.intent.ACTION",
        extras: {
                'random.number': Math.floor((Math.random() * 1000) + 1)
        }
    },
    function() {},
    function() {alert('Failed to open URL via Android Intent')}
);

intentShim.onIntent

Returns the content of the intent used whenever the application activity is launched

window.plugins.intentShim.onIntent(callback);

Description

The intentShim.onIntent function returns the intent which launched the Activity and maps to the Android Activity's onNewIntent() method, https://developer.android.com/reference/android/app/Activity.html#onNewIntent(android.content.Intent). The registered callback is invoked whenever the activity is launched

Android Quirks

By default the android application will be created with launch mode set to 'SingleTop'. If you wish to change this to 'SingleTask' you can do so by modifying config.xml as follows:

<platform name="android">
    ...
    <preference name="AndroidLaunchMode" value="singleTask"/>
</platform>

See https://www.mobomo.com/2011/06/android-understanding-activity-launchmode/ for more information on the differences between the two.

Example

Registers a callback to be invoked

window.plugins.intentShim.onIntent(function (intent) {
    console.log('Received Intent: ' + JSON.stringify(intent.extras));
});

intentShim.startActivity

Starts a new activity using an intent built from action, url, type, extras or some subset of those parameters

window.plugins.intentShim.startActivity(params, successCallback, failureCallback);

Description

The intentShim.startActivity function maps to Android's activity method startActivity, https://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent) to launch a new activity.

Android Quirks

Some common actions are defined as constants in the plugin, see below.

Examples

Launch the maps activity

window.plugins.intentShim.startActivity(
{
    action: window.plugins.intentShim.ACTION_VIEW,
    url: 'geo:0,0?q=London'
},
function() {},
function() {alert('Failed to open URL via Android Intent')}
);

Launch the web browser

window.plugins.intentShim.startActivity(
{
    action: window.plugins.intentShim.ACTION_VIEW,
    url: 'http://www.google.co.uk'
},
function() {},
function() {alert('Failed to open URL via Android Intent')}
);

intentShim.getIntent

Retrieves the intent that launched the activity

window.plugins.intentShim.getIntent(resultCallback, failureCallback);

Description

The intentShim.getIntent function maps to Android's activity method getIntent, https://developer.android.com/reference/android/app/Activity.html#getIntent() to return the intent that started this activity.

Example

window.plugins.intentShim.getIntent(
    function(intent)
    {
        console.log('Action' + JSON.stringify(intent.action));
        var intentExtras = intent.extras;
        if (intentExtras == null)
            intentExtras = "No extras in intent";
        console.log('Launch Intent Extras: ' + JSON.stringify(intentExtras));
    },
    function()
    {
        console.log('Error getting launch intent');
    });

intentShim.startActivityForResult

Starts a new activity and return the result to the application

window.plugins.intentShim.startActivityForResult(params, resultCallback, failureCallback);

Description

The intentShim.startActivityForResult function maps to Android's activity method startActivityForResult, https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int) to launch a new activity and the resulting data is returned via the resultCallback.

Android Quirks

Some common actions are defined as constants in the plugin, see below.

Example

Pick an Android contact

window.plugins.intentShim.startActivityForResult(
{
    action: window.plugins.intentShim.ACTION_PICK,
    url: "content://com.android.contacts/contacts",
    requestCode: 1
},
function(intent)
{
    if (intent.extras.requestCode == 1)
    {
        console.log('Picked contact: ' + intent.data);
    }
},
function()
{
    console.log("StartActivityForResult failure");
});

intentShim.sendResult

Assuming this application was started with intentShim.startActivityForResult, send a result back

window.plugins.intentShim.sendResult(args, callback);

Description

The intentShim.sendResult function returns an Activity.RESULT_OK Intent to the activity that started this application, along with any extras that you want to send along (as args.extras object), and a callback function. It then calls Android Activity's finish() method, https://developer.android.com/reference/android/app/Activity.html#finish().

Android Quirks

Both args and callback arguments have to be provided. If you do not need the functionality, send an empty object and an empty function

window.plugins.intentShim.sendResult({}, function() {});

Example

window.plugins.intentShim.sendResult(
    {
        extras: {
            'Test Intent': 'Successfully sent',
            'Test Intent int': 42,
            'Test Intent bool': true,
            'Test Intent double': parseFloat("142.12")
        }
    },
    function() {
    
    }
);

intentShim.packageExists

Returns a boolean indicating if a specific package is installed on the device.

window.plugins.intentShim.packageExists(packageName, callback);

Description

The intentShim.packageExists function returns a boolean indicating if a specific package is installed on the current device.

Example

const packageName = 'com.android.contacts';

window.plugins.intentShim.packageExists(packageName, (exists) => {
    if (exists) {
        console.log(`${packageName} exists!`);
    } else {
        console.log(`${packageName} does not exist...`);
    }
});

Predefined Constants

The following constants are defined in the plugin for use in JavaScript

  • window.plugins.intentShim.ACTION_SEND
  • window.plugins.intentShim.ACTION_VIEW
  • window.plugins.intentShim.EXTRA_TEXT
  • window.plugins.intentShim.EXTRA_SUBJECT
  • window.plugins.intentShim.EXTRA_STREAM
  • window.plugins.intentShim.EXTRA_EMAIL
  • window.plugins.intentShim.ACTION_CALL
  • window.plugins.intentShim.ACTION_SENDTO
  • window.plugins.intentShim.ACTION_GET_CONTENT
  • window.plugins.intentShim.ACTION_PICK

Tested Versions

Tested with Cordova version 6.5.0 and Cordova Android version 6.2.1