在iOS通知屏幕Xamarin中显示通知的格式

时间:2018-10-23 11:35:33

标签: c# xamarin xamarin.ios

是否可以更改ios> 10上通知区域中文本的显示方式?

例如,当前我正在发送json字符串作为包含应用程序必要信息的通知,并且在锁定屏幕或下拉菜单的通知区域中显示该json字符串。有没有一种方法可以自定义在那里显示的文本?

我进行了搜索,但是发现的内容没有帮助。当应用程序位于前台时,我可以处理通知的显示。

如果不可能直接发送通知,是否可以以静默方式发送通知,然后将格式化的通知推送到ios通知区域?

我的参考模板:

const string templateBodyAPNS = "{\"aps\":{\"alert\":\"$(messageParam)\", \"category\": \"test\"}}";

我尝试了可变内容1,但也没有用。

我的扩展程序代码:

using System;
using UIKit;
using UserNotifications;
using UserNotificationsUI;

namespace NotificationContentExtension
{
    public partial class NotificationViewController : UIViewController, IUNNotificationContentExtension
    {
        protected NotificationViewController(IntPtr handle) : base(handle)
        {
            // Note: this .ctor should not contain any initialization logic.
        }

        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Do any required interface initialization here.
        }

        public void DidReceiveNotification(UNNotification notification)
        {
            label.Text = "Hello";
            new UIAlertView("Received", "Working", null, "Ok").Show();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您需要在Xamarin.iOS项目中添加 Notification Service Extension (通知服务扩展),以自定义显示推送通知的方式。

1。在Visual Studio中,转到“文件/新项目/ Visual C#/ iOS扩展/通知服务扩展”。

  1. Notification Service必须具有以iOS项目作为前缀的捆绑软件名称:

    iOS项目捆绑包ID:www.companyname.iosappname

    扩展捆绑包ID:www.companyname.iosappname.extensionname

  2. 需要添加对指向扩展的iOS项目的引用。因此,右键单击iOS项目,添加引用并选择扩展项目。

  3. 当前在Visual Studio中,将扩展引用添加到iOS项目后,您将只能在发布模式下运行iOS项目,而不能在调试模式下运行。如果在“调试”模式下尝试,则会出现错误。要在调试模式下运行,请先从iOS项目中删除扩展参考。

  4. 您需要将APNS格式更改为:

    常量字符串templateBodyAPNS = @“ {                                     “” aps“”:{                                             “” alert“”:“” $(messageParam)“”,                                             ““可变内容””:1                                               },                                 }“;

    添加“可变内容”:1表示通知服务将拦截 推送通知。

  5. Notification Service Extension无法与主iOS项目交换数据。 为了在两者之间共享数据,您需要在以下页面上创建一个应用组: Apple Developer网站。确保将应用程序组添加到两个项目的Entitlements.plist文件中,也将其添加到Apple Developer网站上。

  6. 您需要在Apple Developer网站上为项目和Notification Service Extension激活推送通知,还需要为两者创建证书和供应配置文件。

  7. 仅发布iOS项目,该扩展会自动包含在内。

让我知道您是否还有其他问题。