0

在我的 react native 应用程序中,我尝试使用这个库react-native-push-notification处理计划的语言环境通知,它在运行 android API 的设备中运行良好,低于 25,所以问题出现在 android Oreo 版本中,我尝试了很多的解决方案,例如使用频道并向该频道添加通知,但没有结果,请帮助!!!

我的反应原生版本

  • 反应原生 cli:2.0.1
  • 反应原生:0.58.5

来自安卓项目:

    buildToolsVersion = "28.0.2"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 27
    supportLibVersion = "28.0.0"
4

2 回答 2

2

在花了几天寻找解决方案后,我自己解决了这个问题!

转到 android 项目中的文件以获取 react-native-push-notification库并在此处进行一些更改

第 572 行到行

将这些行替换为:

NotificationChannel mChannel = manager.getNotificationChannel(NOTIFICATION_CHANNEL_ID);
if (mChannel == null) {
mChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Channel name", NotificationManager.IMPORTANCE_MAX);
mChannel.enableVibration(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
manager.createNotificationChannel(mChannel);
}
于 2019-03-18T12:27:32.267 回答
0

由于电池优化,反应本机推送通知在 >=o 中不起作用...

在 MAinActivity.java 中添加通道

public void onResume() {
        super.onResume();
        NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            int importance = NotificationManager.IMPORTANCE_HIGH;

            NotificationChannel notificationChannel = new NotificationChannel("channelID", "channelName", importance);
            notificationChannel.enableLights(true);
            notificationChannel.setLightColor(Color.RED);
            notificationChannel.enableVibration(true);
            notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            nMgr.createNotificationChannel(notificationChannel);
        }

        nMgr.cancelAll();
    }
于 2019-05-29T05:10:07.333 回答