在Master-Detail应用程序中显示通知 - 没有错误但没有通知

时间:2018-06-09 08:22:52

标签: android xamarin.forms notifications

我正在尝试使用Xamarin应用程序进行通知,最初是在Android方面,然后我将使用iOS。我下载了android sample app,它运行得很好。但是,当我尝试在我自己的应用程序中实现相同的功能时,虽然我没有收到任何错误,但我也没有得到任何通知。

我最初只想在主要活动中创建一个测试,但我想知道它是否与这是一个主要细节类型的应用程序有关。

我是否必须为通知构建器和管理器提供不同的上下文,而不是示例显示的主要活动?不幸的是,我还没有设法找到一个实现通知的示例主 - 详细信息应用程序。

主要活动OnCreate()如下......

    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;
        AndroidContext = this;

        base.OnCreate(bundle);

        global::Xamarin.Forms.Forms.Init(this, bundle);

        UserDialogs.Init(this);

        LoadApplication(new App()); //<- setup master-detail forms

        IsPlayServicesAvailable();

        FirebaseApp.InitializeApp(this);
        var refreshedToken = FirebaseInstanceId.Instance.Token;

        var notificationBuilder = new Notification.Builder(this)
                .SetSmallIcon(Resource.Drawable.icon)
                .SetContentTitle("myStaff Message")
                .SetContentText("test")
                .SetAutoCancel(true);

        var notificationManager = NotificationManager.FromContext(this);

        notificationManager.Notify(0, notificationBuilder.Build());            
    }

请问人们不要回答“你应该使用xyz插件”或“使用nuget abc ......”或类似内容。虽然我很欣赏有很多插件可以做到这一点,但我想了解我的代码出了什么问题而不是简单地避免/解决问题。

编辑:好的,所以这比我意识到的要深刻。我现在尝试了两个不同的插件 - 在两种情况下都是相同的结果,没有错误但没有通知。这只是疯了。在我的代码中回过头几个星期,然后在那里尝试然后迭代到它停止的地方(也许)它可能会给我一个阻止它的线索

1 个答案:

答案 0 :(得分:0)

因此,经过进一步调查并挖掘旧设备,似乎这是一个奥利奥问题。

似乎缺乏官方文档,演示项目不允许使用频道,这就是问题所在。它与master-detail无关 - 我的代码在旧设备上运行时效果很好(所有版本),只是在8.0+上运行 - 现在我只需修复它。

编辑:根据this github thread中的 kylewhittington 发布的帖子(大约在第8篇帖子中),我现在设法编写了一个可以在Oreo和旧版Android中运行的解决方案。只需添加iOS代码即可。