是否可以更改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();
}
}
}
答案 0 :(得分:0)
您需要在Xamarin.iOS项目中添加 Notification Service Extension (通知服务扩展),以自定义显示推送通知的方式。
1。在Visual Studio中,转到“文件/新项目/ Visual C#/ iOS扩展/通知服务扩展”。
Notification Service必须具有以iOS项目作为前缀的捆绑软件名称:
iOS项目捆绑包ID:www.companyname.iosappname
扩展捆绑包ID:www.companyname.iosappname.extensionname
需要添加对指向扩展的iOS项目的引用。因此,右键单击iOS项目,添加引用并选择扩展项目。
当前在Visual Studio中,将扩展引用添加到iOS项目后,您将只能在发布模式下运行iOS项目,而不能在调试模式下运行。如果在“调试”模式下尝试,则会出现错误。要在调试模式下运行,请先从iOS项目中删除扩展参考。
您需要将APNS格式更改为:
常量字符串templateBodyAPNS = @“ { “” aps“”:{ “” alert“”:“” $(messageParam)“”, ““可变内容””:1 }, }“;
添加“可变内容”:1表示通知服务将拦截 推送通知。
Notification Service Extension无法与主iOS项目交换数据。 为了在两者之间共享数据,您需要在以下页面上创建一个应用组: Apple Developer网站。确保将应用程序组添加到两个项目的Entitlements.plist文件中,也将其添加到Apple Developer网站上。
您需要在Apple Developer网站上为项目和Notification Service Extension激活推送通知,还需要为两者创建证书和供应配置文件。
仅发布iOS项目,该扩展会自动包含在内。
让我知道您是否还有其他问题。