react-native-push-notification - 本地通知在 Android 上不起作用
react-native-push-notification - local notifications not working on Android
谁能告诉我我哪里出错了。
从我在 instructions 上看到的情况来看,如果您仅使用本地通知并使用自动链接,则不需要对 Android 特定文件进行任何修改....除了添加 googlePlayServicesVersion = "<Your play services version>" // default: "+"
到 android/build.gradle
...和 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
加上 <uses-permission android:name="android.permission.VIBRATE" />
到 AndroidManifest.xml
下面是我的主要源代码
PushNotification.configure({
// (optional) Called when Token is generated (iOS and Android)
onRegister: function(token) {
console.log('onRegister token:', token);
},
// (required) Called when a remote is received or opened, or local notification is opened
onNotification: function(notification) {
console.log('onNotification:', notification);
notification.finish(PushNotificationIOS.FetchResult.NoData);
},
// Should the initial notification be popped automatically
popInitialNotification: true,
requestPermissions: true,
});
userNowInactive = () => {
this.showNotification();
}
showNotification = () => {
PushNotification.localNotification({
//ios and android properties
title: 'Face2Face: Beacon Timer Expired',
message: 'Perhaps set your beacon timer for another hour?',
playSound: true,
soundName: 'sound.mp3',
//android only properties
channelId: 'your-channel-id',
autoCancel: true,
// largeIcon: 'ic_launcher',
// smallIcon: 'ic_launcher',
bigText: 'Face2Face: Beacon Timer Expired',
subText: 'Perhaps set your beacon timer for another hour?',
vibrate: true,
vibration: 300,
priority: 'high',
//ios only properties...is there any?
});
};
您创建频道了吗?
看来你需要创建一个才能让它工作。
https://github.com/zo0r/react-native-push-notification#channel-management-android
要使用频道,请在启动时创建它们并将匹配的频道 ID 传递给 PushNotification.localNotification 或 PushNotification.localNotificationSchedule。
PushNotification.createChannel(
{
channelId: "channel-id", // (required)
channelName: "My channel", // (required)
channelDescription: "A channel to categorise your notifications", // (optional) default: undefined.
playSound: false, // (optional) default: true
soundName: "default", // (optional) See `soundName` parameter of `localNotification` function
importance: 4, // (optional) default: 4. Int value of the Android notification importance
vibrate: true, // (optional) default: true. Creates the default vibration patten if true.
},
(created) => console.log(`createChannel returned '${created}'`) // (optional) callback returns whether the channel was created, false means it already existed.
);
谁能告诉我我哪里出错了。
从我在 instructions 上看到的情况来看,如果您仅使用本地通知并使用自动链接,则不需要对 Android 特定文件进行任何修改....除了添加 googlePlayServicesVersion = "<Your play services version>" // default: "+"
到 android/build.gradle
...和 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
加上 <uses-permission android:name="android.permission.VIBRATE" />
到 AndroidManifest.xml
下面是我的主要源代码
PushNotification.configure({
// (optional) Called when Token is generated (iOS and Android)
onRegister: function(token) {
console.log('onRegister token:', token);
},
// (required) Called when a remote is received or opened, or local notification is opened
onNotification: function(notification) {
console.log('onNotification:', notification);
notification.finish(PushNotificationIOS.FetchResult.NoData);
},
// Should the initial notification be popped automatically
popInitialNotification: true,
requestPermissions: true,
});
userNowInactive = () => {
this.showNotification();
}
showNotification = () => {
PushNotification.localNotification({
//ios and android properties
title: 'Face2Face: Beacon Timer Expired',
message: 'Perhaps set your beacon timer for another hour?',
playSound: true,
soundName: 'sound.mp3',
//android only properties
channelId: 'your-channel-id',
autoCancel: true,
// largeIcon: 'ic_launcher',
// smallIcon: 'ic_launcher',
bigText: 'Face2Face: Beacon Timer Expired',
subText: 'Perhaps set your beacon timer for another hour?',
vibrate: true,
vibration: 300,
priority: 'high',
//ios only properties...is there any?
});
};
您创建频道了吗? 看来你需要创建一个才能让它工作。
https://github.com/zo0r/react-native-push-notification#channel-management-android
要使用频道,请在启动时创建它们并将匹配的频道 ID 传递给 PushNotification.localNotification 或 PushNotification.localNotificationSchedule。
PushNotification.createChannel(
{
channelId: "channel-id", // (required)
channelName: "My channel", // (required)
channelDescription: "A channel to categorise your notifications", // (optional) default: undefined.
playSound: false, // (optional) default: true
soundName: "default", // (optional) See `soundName` parameter of `localNotification` function
importance: 4, // (optional) default: 4. Int value of the Android notification importance
vibrate: true, // (optional) default: true. Creates the default vibration patten if true.
},
(created) => console.log(`createChannel returned '${created}'`) // (optional) callback returns whether the channel was created, false means it already existed.
);