@angelkrak/react-native-intent-launcher

1.0.2 • Public • Published

React Native Intent Launcher

npm version downloads MIT Platform - Android

call native function startActivity in react-native

Description

You can call native function startActivity in react-native to do something with Intent which can only be solved with android native code

Installation

  1. npm install @angelkrak/react-native-intent-launcher
  2. react-native link @angelkrak/react-native-intent-launcher

Usage

import IntentLauncher from '@angelkrak/react-native-intent-launcher';

IntentLauncher.startActivity({
	action: 'android.settings.APPLICATION_DETAILS_SETTINGS',
	data: 'package:com.example'
})

// check if app is installed by package name
IntentLauncher.isAppInstalled('com.android.chrome')
  .then((result) => {
    console.log('isAppInstalled yes');
  })
  .catch((error) => console.warn('isAppInstalled: no', error));

// open another app by package name
IntentLauncher.startAppByPackageName('com.android.chrome')
  .then((result) => {
    console.log('startAppByPackageName started');
  })
  .catch((error) => console.warn('startAppByPackageName: could not open', error));

Usage with IntentLauncherClass.js

You can also use IntentLauncherClass.js directly in your project. Here's how to import and use it:

import { IntentLauncherClass } from '@angelkrak/react-native-intent-launcher'; 

// Example of how to launch an activity
const params = {
  action: 'android.settings.APPLICATION_DETAILS_SETTINGS',
  data: 'package:com.example'
};
IntentLauncherClass.startActivity(params);

// Example of how to launch a series of intents sequentially
const intents = [
  { action: 'android.settings.APPLICATION_DETAILS_SETTINGS', data: 'package:com.example' },
  {
    action: 'android.intent.action.VIEW',
    packageName: 'com.android.settings',
    className: 'com.android.settings.InstalledAppDetails',
    extra: {
      'com.android.settings.ApplicationPkgName': "com.example",
      'pkg': "com.example"
    }
  },
  'android.settings.MANAGE_APPLICATIONS_SETTINGS',
  'android.provider.Settings.ACTION_SETTINGS',
];
IntentLauncherClass.launchIntents(intents);

// Example of how to check if an application is installed
const packageName = 'com.android.chrome'; // Chrome application package
IntentLauncherClass.isAppInstalled(packageName)
  .then((result) => {
    console.log('The application is installed');
  })
  .catch((error) => {
    console.warn('The application is not installed', error);
  });

// Example of how to start another application by its package name
const packageName = 'com.android.chrome'; // Chrome application package
IntentLauncherClass.startAppByPackageName(packageName)
  .then((result) => {
    console.log('The application has been started');
  })
  .catch((error) => {
    console.warn('Failed to start the application', error);
  });

Properties

  • action String
  • data String
  • category String
  • flags String
  • extra Object
  • packageName String
  • className String
  • flags Number

In the IntentConstant, we provide some constants for these properties, you can look up document provided by google to find out property we didn't support currently.

License

MIT

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i @angelkrak/react-native-intent-launcher

      Weekly Downloads

      0

      Version

      1.0.2

      License

      MIT

      Unpacked Size

      371 kB

      Total Files

      10

      Last publish

      Collaborators

      • angelkrak