【问题标题】:Accessing App code from Notification Service Extension从通知服务扩展访问应用程序代码
【发布时间】:2019-10-08 07:41:01
【问题描述】:

Notification Service Extension 在发送给用户之前修改远程通知的内容。例如,如果远程通知包含图像 URL,则可以使用 Notification Service Extension 获取图像并将其显示在通知内容中。

但是我如何才能访问Notification Service Extension 中的实际应用代码?假设我在应用代码中有一个DataAccess swift 类,我可以在Notification Service Extension 中访问这个类吗?

编辑:有人建议将应用代码添加到服务扩展中,这不适用于我的情况。

【问题讨论】:

  • 你试过这个吗?我从未在文档或示例中看到过这样的事情。我也想知道。
  • 我尝试访问应用代码不幸失败。
  • 您需要在 Xcode 中将相关的源文件添加到您的扩展目标中
  • 不可能,直到您将相关文件添加到您的服务扩展中

标签: ios swift remote-notifications unnotificationserviceextension


【解决方案1】:

转到您要在应用项目中使用的类。在您的文件检查器上,您将看到您班级的Target Membership。检查扩展名复选框。然后你就可以重用你的代码了。

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

【讨论】:

  • 我正在访问应用程序的用户默认数据并在我的扩展程序中循环,但它对我不起作用。 @alecnash
【解决方案2】:

通常的解决方案是创建一个包含您的 DataAccess 类的库/框架,并且您的应用和通知服务扩展使用此库/框架。 确保在添加到 Notification Service Extension 时为您的框架选择 Do not embed,并在将其添加到您的应用程序时选择 Embed and sign

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2019-04-05
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多