通知服务扩展在将远程通知传递给用户之前修改它的内容。例如,如果远程通知包含图像 URL,则可以使用通知服务扩展来获取图像并将其显示在通知内容中。
但是如何在Notification Service Extension中访问实际的应用程序代码?假设我DataAccess
在应用程序代码中有一个 swift 类,我可以在Notification Service Extension中访问这个类吗?
编辑:有些人建议将应用程序代码添加到服务扩展中,这不适用于我的情况。
通知服务扩展在将远程通知传递给用户之前修改它的内容。例如,如果远程通知包含图像 URL,则可以使用通知服务扩展来获取图像并将其显示在通知内容中。
但是如何在Notification Service Extension中访问实际的应用程序代码?假设我DataAccess
在应用程序代码中有一个 swift 类,我可以在Notification Service Extension中访问这个类吗?
编辑:有些人建议将应用程序代码添加到服务扩展中,这不适用于我的情况。
转到您要在应用项目中使用的类。在您的文件检查器上,您将看到您班级的目标成员。检查扩展名复选框。然后你可以重用你的代码。
您还可以在通知服务目标的Build Phases -> Compiled Sources中添加您需要的类。结果是一样的。
通常的解决方案是创建一个包含您的DataAccess
类的库/框架,并且您的应用程序和通知服务扩展使用此库/框架。确保Do not embed
在添加到通知服务扩展时为您的框架选择,并Embed and sign
在将其添加到您的应用程序时选择。