gpt4 book ai didi

ios - 根据正在运行的应用程序启用/禁用键盘中的功能

转载 作者:行者123 更新时间:2023-11-28 08:25:03 25 4
gpt4 key购买 nike

我正在为聊天应用开发自定义键盘。这个应用程序也有贴纸和 gif。自定义键盘可以在系统范围内使用。但贴纸和 gif 仅在我的聊天应用程序中。

有没有办法检测正在运行的应用程序,以便我可以在键盘上打开和关闭贴纸/gif?我做了一些挖掘,发现了这个 answer所以。但这对我不起作用。

override public func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if let parentViewController = self.parentViewController {
var hostBundleID = parentViewController.valueForKey("_hostBundleID")
println(hostBundleID)
}
}

viewWillAppear 函数甚至没有触发。然后,当您使用 hack-ish 解决方法时,Apple 可能会拒绝该应用程序。

有更好的方法吗?

最佳答案

我认为不允许应用扩展了解当前正在运行的应用或调用它们的应用。

你可以做的是在聊天应用程序中嵌入键盘扩展,并使用扩展程序和主机应用程序之间的数据共享机制来检测主机应用程序何时运行(你可以在 here >与包含的应用程序共享数据部分)。

基本上,您可以在打开聊天应用程序时在共享 NSUserDefaults 中写入一个值,在应用程序处于后台或关闭时写入一个不同的值,并检查键盘扩展中的值。

现在,如果主机应用程序崩溃,那么您的 NSUserDefaults 值将不再准确(它显示主机应用程序正在运行,但实际上并未运行),但您可以实现某种心跳 - 写入时间戳每 30 秒左右从主机获取一次,并在时间戳足够新以假设主机仍在运行时检查应用程序扩展。

它仍然是一个(大而多毛的)hack,因为它令人费解且容易失败,但至少从 App Store 的角度来看是合法的。

关于ios - 根据正在运行的应用程序启用/禁用键盘中的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com