UIApplicationShortcutItem 未显示基于 Info.plist [重复]

Posted

技术标签:

【中文标题】UIApplicationShortcutItem 未显示基于 Info.plist [重复]【英文标题】:UIApplicationShortcutItem not showing base on Info.plist [duplicate] 【发布时间】:2019-03-03 12:46:55 【问题描述】:

我的 plist 中定义了 5 个项目。它只显示了 4 个。??????????‍♂️

我在Simulator实际 iPhone XS Max 中尝试过。

    <array>
        <dict>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>home</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Home</string>
            <key>UIApplicationShortcutItemType</key>
            <string>homePressed</string>
        </dict>
        <dict>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>security</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Security</string>
            <key>UIApplicationShortcutItemType</key>
            <string>securityPressed</string>
        </dict>
        <dict>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>alert</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Alert</string>
            <key>UIApplicationShortcutItemType</key>
            <string>alertPressed</string>
        </dict>
        <dict>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>network</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Network</string>
            <key>UIApplicationShortcutItemType</key>
            <string>networkPressed</string>
        </dict>
        <dict>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>settings</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Settings</string>
            <key>UIApplicationShortcutItemType</key>
            <string>settingsPressed</string>
        </dict>
    </array>

结果

我做错了吗?

【问题讨论】:

两根手指,似乎不适用于模拟器和 iPhone。 你有没有机会使用 ios 9 ? 【参考方案1】:

根据Apple:

当用户按下主屏幕应用程序图标时,系统会限制显示的快速操作的数量。在有限的一组显示的快速操作标题中,首先显示您的静态快速操作,从列表中的最顶部位置开始。如果您的静态项目未消耗允许的显示数量,并且您还使用此类定义了动态快速操作,则显示您的一个或多个动态快速操作。

也就是说,系统规定了显示的最大项目数,并选择您提供的前 n 个项目进行显示。

我找不到显示确切限制的任何地方,但我没有看到任何应用程序有超过 4 个项目 + “共享”项目。

【讨论】:

我会尝试将第 5 个添加为共享,看看我所看到的。【参考方案2】:

我认为有四个项目的限制,查看documents

系统限制了用户显示的快速操作的数量 按下主屏幕应用程序图标。在有限的一组显示内 快速动作标题,您的静态快速动作首先显示, 从列表中的最高位置开始。如果你的静态项目 不消耗允许的显示数量,你也有 使用此类定义的动态快速操作,然后是一个或多个 显示您的动态快速操作。

更新讨论 关于分享项:

显然 iOS 会自动添加 SHARE 但仅当应用程序是 从应用商店安装。 – 京

这使它们成为四个 + 共享项,因为 AppStore 会自动在每个下载的应用程序上添加共享应用程序项

【讨论】:

我会尝试将第 5 个添加为共享,看看我所看到的。 某些应用显示 5 带有分享按钮。 分享通常显示为第五个 即使我们没有将它们包含在 Info.plist 中? 显然 iOS 会自动添加 SHARE,但前提是该应用是从 Appstore 安装的。

以上是关于UIApplicationShortcutItem 未显示基于 Info.plist [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从扩展更新 UIApplicationShortcutItem

UIApplicationShortcutItem 无需打开应用即可共享

从由 UIApplicationShortcutItem 触发的 AppDelegate 导航到 ViewController

UIApplicationShortcutItem 未显示基于 Info.plist [重复]

Swift 3 / Xcode 8 beta 6 中未调用 UIApplicationShortcutItem 的 AppDelegate 函数

我们可以更改 3D 触摸快捷项目图标吗?