从通知服务扩展访问应用程序代码

7

通知服务扩展在将远程通知传递给用户之前修改其内容。例如,如果远程通知包含图像URL,则可以使用通知服务扩展来获取图像并在通知内容中显示。

但是我如何在通知服务扩展中访问实际的应用程序代码?假设我在应用程序代码中有一个DataAccess swift类,我能否在通知服务扩展中访问此类?

编辑:一些人建议将应用程序代码添加到服务扩展中,但这在我的情况下不适用。


你试过这个吗?我在文档或示例中从未见过类似的东西。我也很好奇。 - Ahmet Sina Ustem
我尝试访问应用程序代码,但不幸失败了。 - ramazan polat
您需要将相关的源文件添加到Xcode中的扩展目标中。 - Paulw11
除非您将相关文件添加到服务扩展中,否则无法完成此操作。 - manishsharma93
2个回答

3

前往你想在应用项目中使用的类。在你的文件检查器上,你会看到你的类的目标成员资格。选中扩展名复选框。然后你就可以重复使用你的代码。

你还可以在你的通知服务目标的Build Phases -> Compiled Sources中添加你需要的类。结果是一样的。


我正在访问应用程序的用户默认数据并在我的扩展中循环,但它对我不起作用。@alecnash - Raja Saad

2
通常的解决方案是创建一个包含您的 DataAccess 类的库/框架,然后您的应用程序和通知服务扩展使用此库/框架。 在将其添加到通知服务扩展时,请确保选择 不要嵌入,在将其添加到您的应用程序时,请选择 嵌入并签名

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接