我在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();
}
答案 0 :(得分:0)
您需要设置服务扩展。看看我们在Background Notifications上的文档。另外,在设计实现时请考虑使用Notification Behavior
答案 1 :(得分:0)
在您的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'