Closed kuklyuk closed 2 years ago
This issue may need more information before it can be addressed. In particular, it will need a reliable Code Reproduction that demonstrates the issue.
Please see the Contributing Guide for how to create a Code Reproduction.
Thanks! Ionitron 💙
Reproduction App: https://github.com/kuklyuk/lnchannel.git To reproduce: simply try to compile the Ionic App. The "wrong" code is in the file src/app/app.component.ts function initChannel (Ln 21). Without this function the projects compiles OK.
You have to tell typescript that the channel object is a LocalNotificationChannel
:
const channel: LocalNotificationChannel = {
id: "tiko_notifications",
name: "TiKo",
description: "TiKo reminder channel",
importance: 5,
lightColor: "#FFFFFF",
sound: "expiration.wav",
vibration: true,
};
or that the importance value is of Importance
type.
const importance: Importance = 5;
const channel = {
id: "tiko_notifications",
name: "TiKo",
description: "TiKo reminder channel",
importance: importance,
lightColor: "#FFFFFF",
sound: "expiration.wav",
vibration: true
};
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Capacitor, please create a new issue and ensure the template is fully filled out.
Bug Report
Capacitor Version
@capacitor/core: 4.4.0 @capacitor/cli: 4.4.0 @capacitor/android: 4.4.0 @capacitor/local-notifications@4.1.2
Platform(s)
Android
Current Behavior
Trying to register a notification channel with LocalNotifications plugin. Unable to set "importance" property. According to doc, this property is of a special "Importance" type, but the value must be one of 1 | 2 | 3 | 4 | 5. Trying to set simply {importance : 5} triggers the following compile error:
Argument of type '{ id: string; name: string; description: string; importance: number; lightColor: string; sound: string; vibration: boolean; }' is not assignable to parameter of type 'Channel'. Types of property 'importance' are incompatible. Type 'number' is not assignable to type 'Importance'. E.g. the compilation behavior does not correspond wit the documentation.
The documentation means that the property must be one of the following values: 1 | 2 | 3 | 4 | 5. The native Android platform also accepts this property as an int constant. Evidently the plugin does not provide any special enums or named constants. Ergo: either the compiler must accept a simple integer value, or the documentation must show another proper way to set this property.
Expected Behavior
Normally register a channel.
Code Reproduction
const channel = { id: "tiko_notifications", name: "TiKo", description: "TiKo reminder channel", importance: 5, lightColor: "#FFFFFF", sound: "expiration.wav",
vibration: true
}; await LocalNotifications.createChannel( channel );
Other Technical Details
npm --version
output: 8.11.0node --version
output: 16.16.0 Ionic 6.20.1 Windows 11 Pro