在自定义iOS键盘中检测应用程序

Igo*_*nov 8 keyboard cocoa-touch objective-c ios ios-extensions

如何检测我的自定义键盘使用的应用程序并显示不同的按钮?例如在Twitter中我会将@添加到字符串我发布到输入字段和Reddit/r /

Sun*_*rge 8

可以通过以下代码实现.因为你将获得你正在使用自定义键盘的应用程序的包标识符..

迅速

    let hostBundleID = self.parentViewController!.valueForKey("_hostBundleID")
    let currentHostBundleID = String(hostBundleID)
    print(currentHostBundleID);
Run Code Online (Sandbox Code Playgroud)

从包标识符中,您可以轻松找到应用名称.

好运!

  • @WillVonUllrich苹果批准的我的应用之一,它具有相同的实现。因此,希望它也适用于您的情况。 (2认同)
  • 不幸的是,这在 iOS 16 中已停止工作。 (2认同)

Sch*_*cal 3

编辑:见上文。事情变了。

这不可能。扩展程序在沙盒中运行,并且仅从 API 获取信息,无法访问其他任何内容。键盘只能接收文本上下文更改并激活/停用呼叫。能够检测位于扩展沙箱之外的应用程序,因此是不可能的。