Repository navigation
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Allow an action type's buttons to target an app-owned Android
BroadcastReceiverinstead of launching the activity. This supports native actions such as snooze or mark-as-done without opening the app or relying on a running WebView.Opt in through two
LocalNotificationsconfiguration properties:The receiver must be declared in
AndroidManifest.xml, for example withandroid:exported="false". It receives the same notification/action intent extras used by the activity path:LocalNotificationManager.NOTIFICATION_INTENT_KEY: notification IDLocalNotificationManager.ACTION_INTENT_KEY: action IDLocalNotificationManager.NOTIFICATION_OBJ_INTENT_KEY: original notification JSONRemoteInput.getResultsFromIntent(intent)withLocalNotificationManager.REMOTE_INPUT_KEYThe receiver handles the action natively, including any dismissal or rescheduling. These buttons do not launch the activity or emit
localNotificationActionPerformedto JavaScript.Behavior and scope
RemoteInput.I considered extending
foreground: falseto Android, but that would suggest that JavaScript handlers can run reliably without an activity/WebView. This explicitly native opt-in keeps that distinction clear and preserves existing behavior.Only Kotlin intent routing and TypeScript configuration declarations are changed.
Related historical report: ionic-team/capacitor-plugins#512. Android's own notification action example uses a broadcast for snooze: https://developer.android.com/develop/ui/compose/notifications/create-notification#Actions