【问题标题】:How does Fleksy change the keyboard color without RequestsOpenAccess?Fleksy 如何在没有 RequestsOpenAccess 的情况下更改键盘颜色?
【发布时间】:2014-11-16 05:37:12
【问题描述】:

适用于 iOS 8 的新 Fleksy 键盘版本具有键盘扩展功能。键盘扩展的颜色可以从包含的 Flexy.app 更改,而无需打开RequestsOpenAccess 模式(或 UI 中的“允许完全访问”)。当包含应用程序和扩展程序不共享容器时,这怎么可能?

(现在我想起来了,这也是一个巨大的安全问题。如果包含的应用程序可以与键盘扩展通信,也许它也可以读取您的击键?我并不是说 Fleksy 做到了,只是原则上这应该是不可能的,除非扩展被授予完全访问权限。)

【问题讨论】:

    标签: ios security ios-app-extension ios-keyboard-extension


    【解决方案1】:

    我明白了。该应用程序不通过共享容器与键盘通信,它通过应用程序中的示例文本字段进行通信。当用户点击更改颜色主题时,应用程序会在文本字段中插入一个特殊字符串,键盘会注意到该字符串,解析主题名称并将设置存储在自己的用户默认值中。

    【讨论】:

    • 哇,太聪明了!
    • 但是他们如何确保他们的键盘是用于“编辑”特殊文本字段的键盘?
    • 我假设他们的键盘在可见时也会发送消息。他们的入职非常聪明。
    • 这是一个非常聪明的技巧,用于在键盘和包含应用程序之间进行消息传递,这是自定义键盘 API 中的一大障碍。
    • 您可以使用NSUserDefaults *defaults = [[NSUserDefaults alloc]initWithSuiteName:@"com.bundleID..."]; 来回通信,而无需打开RequestsOpenAccess,但您不能使用您应用的捆绑包ID——编造一些独特的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多