New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

capacitor4-notificationlistener

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

capacitor4-notificationlistener

Observe android notification being posted / removed using this NotificationListenerService wrapper for capacitor.

latest
npmnpm
Version
0.0.1
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

capacitor-notificationlistener

From repo : https://github.com/Alone2/capacitor-notificationlistener Observe android notification being posted / removed using this NotificationListenerService wrapper for capacitor.

Installation

npm i capacitor-notificationlistener
npx cap sync

Register this plugin using add(NotificationListenerPlugin.class) in your MainActivity.java like in the following example:

// ... code ...
import ch.asinz.capacitornotificationlistener.NotificationListenerPlugin;
// ... code ...
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Put it here!
      add(NotificationListenerPlugin.class);
    }});
// ... code ...

Permissions

Add the following, contained in <application>, to your AndroidManifest.xml:

<service android:name="ch.asinz.capacitornotificationlistener.NotificationService"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
    <intent-filter>
        <action android:name="android.service.notification.NotificationListenerService" />
    </intent-filter>
</service>

Usage

Import the plugin.

import { SystemNotification, SystemNotificationListener } from 'capacitor-notificationlistener';
const sn = new SystemNotificationListener();

Start listening for notifications.

sn.startListening();

Add a listener for new notifications or the removal of notifications. Make sure you have called sn.startListening() to be able to receive notifications.

sn.addListener("notificationReceivedEvent", (info: SystemNotification) => {
    // logic ...
});
sn.addListener("notificationRemovedEvent", (info: SystemNotification) => {
    // logic ...
});

SystemNotification Interface. The anotomy of android notifications is explained here.

interface SystemNotification {
  apptitle: string;     // Title of a notifications' app
  text: string;         // Text of a notification
  textlines: string[];  // Text of a multi-line notification
  title: string;        // Title of a notification
  time: Date;           // Time when a notification was received
  package: string;      // Package-name of a notifications' app
}

Check if the App is listening for notifications. If it is not, even though sn.startListening() was called, your app doesn't have sufficient permissions to observe notifications.

sn.isListening().then((value : boolean) => {
    // logic ... 
    // example code:
    // if not listening
    if (!value)
        // ask for Permission
        sn.requestPermission()
});

Open settings so that the user can authorize your app.

sn.requestPermission();

Stop listening for notifications.

sn.stopListening();

Keywords

capacitor

FAQs

Package last updated on 16 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts