【问题标题】:Is there a way to not open the splash screen/app when launching a shortcut action in iOS?在 iOS 中启动快捷操作时,有没有办法不打开启动画面/应用程序?
【发布时间】:2019-03-21 12:38:24
【问题描述】:
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem,
                     completionHandler: @escaping (Bool) -> Void) {
        if shortcutItem.type == "com.xyz.test.tests.firstAction" {
            if let url = URL(string: "https://www.google.com/") {
                DispatchQueue.main.async {
                    UIApplication.shared.openURL(url)
                }
                print("\(shortcutItem) was tapped")
            }

这是我要执行的代码。执行操作后有没有办法关闭应用程序?如果不是,我猜它是上​​下文所必需的。

【问题讨论】:

    标签: ios swift appdelegate uiapplication uiapplicationshortcutitem


    【解决方案1】:

    试试exit(0),但你不能发布它

    苹果评论:

    我们发现您的应用包含用于退出应用的 UI 控件。 这不符合 iOS 人机界面指南,因为 App Store 审核指南要求。

    请参考所附截图。

    iOS 人机界面指南指定,

    “随时准备停止 iOS 应用程序在人们按下时停止 主页按钮打开不同的应用程序或使用设备 功能,例如电话。特别是,人们不会点击 应用程序关闭按钮或从菜单中选择退出。提供一个好的 停止体验,iOS 应用程序应该:

    尽快并尽可能频繁地保存用户数据,因为 退出或终止通知可以随时到达。

    在停止时以最精细的细节保存当前状态 这样人们在开始 再次申请。例如,如果您的应用显示滚动数据, 保存当前滚动位置。”

    删除任何退出应用程序的机制是合适的。

    【讨论】:

    • 感谢这对测试有用,需要找出替代方法。
    • @praza24 你的替代品是什么意思?
    • 我在生产中需要这个,但正如你之前提到的,它不会被苹果通过。我想 UIApplication 总是需要的,点击快捷方式后,即使不需要,也总是启动应用程序。
    • @praza24 你可以使用全屏 webView :) 或 SFSafariController
    • 这就是我所做的,但应用程序仍在启动
    猜你喜欢
    • 2011-11-28
    • 2011-09-27
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    相关资源
    最近更新 更多