【问题标题】:passing data between sirikit intent handler and the app在 Sirikit 意图处理程序和应用程序之间传递数据
【发布时间】:2017-01-19 07:16:24
【问题描述】:

ios 不允许包含的应用程序和包含的扩展共享一个公共容器,因此建议使用 UserDefaults 解决方案。

我已尝试将 UserDefaults 与 sirikit 意图处理程序一起使用,假设该处理程序的行为如下扩展:

在 IntentHandler.swift 中

let shared = UserDefaults(suiteName:XXXXXXXX.group...)
shared?.set("saved value 1", forKey: "key1")
shared?.set("saved value 2", forKey: "key2")
shared?.set("saved value 3", forKey: "key3")

在 viewDidLoad 中的 ViewController.swift 中

let shared = UserDefaults(suiteName:XXXXXXXX.group...)
if let temp1 = shared?.string(forKey:"key1")
{
contentLabel.text = temp1
}
if let value = shared?.string(forKey: "key2")
{
valueLabel.text = value
} 
if let key = shared?.string(forKey: "key3")
{
keyLabel.text = key
}

我可以在我的 ipad 屏幕上看到对应于 key1 和 key2 的字符串,但看不到 key3,在代码中添加同步并没有帮助。

这是我的问题:

1) sirikit 处理程序与其他扩展不同吗?如果是,如何将数据传递给我的应用程序?如果不是,我是否错误地使用了 UserDefaults?

2) 有没有更好的方法来处理应用程序及其扩展程序之间的 IPC,我只需要在它们之间传递简单的字符串消息。

使用 swift 3.0 和 xcode 8.2.1

【问题讨论】:

    标签: ios swift siri sirikit


    【解决方案1】:

    检查您是否为要从中访问组的所有目标启用了应用组。签入项目->您的目标->“应用程序组”下的功能。

    【讨论】:

      【解决方案2】:

      有一个东西叫MMWomhole。它一定会成功的。

      【讨论】:

      • 图书馆似乎死于忽视:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多