根据官方文档《App Extension Programming Guide:Custom Keyboard》中「Designing for User Trust」一章所描述:
当完全访问关闭时:输入法可以使用键盘的基本功能可以使用自动更正功能使用「设置」中的 自定义短语 功能不能与 containing app 交互数据除了输入法的相关文件,不能访问额外的文件系统不能直接或者间接的使用 iCloud, Game Center 和In-App Purchase当完全访问打开时:输入法具有一切离线键盘的功能在用户许可的情况下,可以使用定位服务,可以读取用户通讯录信息与containing app 可以使用共享的 container 交互输入法可以记录击键数据以及其他输入数据,并可以发送到输入法的服务端containing app 可以给输入法自定义的自动更正功能提供一个界面通过 containing app,输入法可以使用 iCloud 在多设备同步设置以及自定义的自动更正数据通过 containing app,输入法可以使用 Game Center 以及 In-App Purchase支持 MDM 管理
根据标红的字段,我们可以得出这样的结论:
(1) 在关闭「完全访问」时,输入法是一个「离线键盘」,仅支持基本输入,无法访问网络,自然也无法记录用户信息并上传到自己的服务器中。
(2) 如果允许「完全访问」,输入法不仅能获取你所有的输入数据,还能获取你的位置及通讯录信息,并可以随意地发送到输入法自家的服务器中。且只要曾经启用过「完全访问」,即使之后关闭权限,输入法也可能在本地记录输入信息,待权限重新开启后一并上传至开发者服务器。
(3) 「完全访问」只会使键盘处于离线状态,应用本身网络访问并不会受限,也就是说:输入法的皮肤等功能,并不会因未关闭「完全访问」而无法使用。而搜狗与百度在设置向导中告知用户这些功能必须允许「完全访问」才能使用,是毫无道理的。当然,云输入、语音、同步等功能另当别论。
为什么要重视「完全访问」?
其实大部分同学并非对开启「完全访问」后可能造成的危害毫无了解,只不过是在功能封禁与隐私泄露二者之间做出一个权衡。