当应用关闭或在华为设备上刷掉时,我无法收到通知?

时间:2019-07-01 20:10:07

标签: flutter dart onesignal

我在flutter应用程序中使用了onsignal通知,我已经在三台Samsunge设备上测试了我的应用程序,并且当该应用程序位于前景,背景以及将其滑开时,通知在所有这些设备中均能正常工作。 之后,我在使用EMUI 9.0.1 OS的华为设备上测试了该应用程序 仅当应用处于活动状态或在后台运行时,通知才起作用 如果我将其清除,将无法收到任何通知。 任何帮助将不胜感激,我一直为此苦苦挣扎。我将在

下发布用于设置onesignal的代码
Future<void> initPlatformState() async {
if (!mounted) return;

OneSignal.shared.setLogLevel(OSLogLevel.verbose, OSLogLevel.none);

OneSignal.shared.setRequiresUserPrivacyConsent(true);
OneSignal.shared.consentGranted(true);


var settings = {
OSiOSSettings.autoPrompt: false,
OSiOSSettings.promptBeforeOpeningPushUrl: true
};



OneSignal.shared.setNotificationReceivedHandler((notification) {
this.setState(() {
print('Notifiaction received');
});
});

OneSignal.shared
.setNotificationOpenedHandler((OSNotificationOpenedResult result) {
this.setState(() {
newUrl = result.notification.payload.additionalData['url'].toString();
});
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) =>  WebNotification(newUrl)));

});
// NOTE: Replace with your own app ID from https://www.onesignal.com
await OneSignal.shared
.init("xxxx-xxxx-xxxx-xxxx-xxxx", iOSSettings: settings);

OneSignal.shared
.setInFocusDisplayType(OSNotificationDisplayType.notification);
OneSignal.shared.inFocusDisplayType();

}

2 个答案:

答案 0 :(得分:0)

您需要设置服务扩展。看看我们在Background Notifications上的文档。另外,在设计实现时请考虑使用Notification Behavior

答案 1 :(得分:0)

  1. 确保您起诉onesignal的最新版本
  2. 对于huwaii,请尽可能使用HMS(onesignal支持HMS)

在您的root build.gradle的buildscript下,将以下2行添加到您现有的存储库和依赖项部分中

    buildscript {
    repositories {
        // ...
        maven { url 'https://plugins.gradle.org/m2/' } // Gradle Plugin Portal 
    }
    dependencies {
        // ...
        // OneSignal-Gradle-Plugin
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.8, 0.99.99]'
    }
}

将以下内容添加到您的app / build.gradle顶部

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
  1. 您需要让用户添加您的应用,以忽略它在武汉的battry optmztion(受保护的应用) 在混乱中,您可以制作按钮并将其附加到应用设置(使用这些插件https://pub.dev/packages/app_settings