@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

Readme

Keywords

none

Package Sidebar

Install

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

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

371 kB

Total Files

10

Last publish

Collaborators

  • angelkrak