禁用 iOS 10 快速操作小部件

Posted

技术标签:

【中文标题】禁用 iOS 10 快速操作小部件【英文标题】:Disable iOS 10 Quick Actions Widget 【发布时间】:2016-09-18 13:50:11 【问题描述】:

在我的应用程序中,我有一个附带的标准小部件。当我使用 ios 10 构建时,小部件会自动包含在 3D Touch 快速操作菜单中。这种小部件复制了已经存在的快速操作的功能。我希望能够隐藏这个小部件并且只有快速操作,但我似乎无法做到这一点。

我尝试使用 UIApplicationShortcutWidget 的 plist 值并将其设置为空,但这不起作用,因为随后会出现默认小部件。我还尝试将其设置为无效值,例如“null”,然后阻止小部件出现,但随后 App Store 拒绝了我的应用程序包并出现以下错误。

Error 1: ​ITMS-90640​ - Invalid Info.plist value
Invalid Info.plist value. The value for key UIApplicationShortcutWidget must be the bundle identifier of a Today extension in the app.

有人知道解决方法吗?

【问题讨论】:

【参考方案1】:

在我的例子中,将 String 类型的键 Home Screen Widget 与值 nil 添加到 plist 删除了自动加载的小部件。作为 XML,它看起来像:

<key>UIApplicationShortcutWidget</key>
<string>nil</string>

【讨论】:

您能否将您的应用上传到 App Store 并通过此更改获得批准? 这没有回答问题。 @jroschen 你试过这个吗?批准了吗? @AdamBardon 这是我在此处发布之前尝试的初始方法,当我使用&lt;string&gt;null&lt;/string&gt; 时它会自动被拒绝,所以我猜他们会自动检查这是否是一个有效的密钥。我打开了一个关于此的错误,Apple 回应“你应该设计你的小部件,期望它们可以在主屏幕 3D Touch 视图中可见。”我猜他们不在乎这个。 @jroschen 有趣。谢谢!你为我节省了很多重复相同过程的时间。

以上是关于禁用 iOS 10 快速操作小部件的主要内容,如果未能解决你的问题,请参考以下文章

3D Touch 快捷方式小工具

禁用多选 Django 小部件中的选择

iOS - 以编程方式创建今日小部件扩展

在 Qt 中禁用小部件上的阻塞信号

今日 iOS 小部件仅在调试时显示

iOS8 - 多个目标的单个小部件