在 iOS 中启动快捷操作时,有没有办法不打开启动画面/应用程序?
Posted
技术标签:
【中文标题】在 iOS 中启动快捷操作时,有没有办法不打开启动画面/应用程序?【英文标题】:Is there a way to not open the splash screen/app when launching a shortcut action in 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")
这是我要执行的代码。执行操作后有没有办法关闭应用程序?如果不是,我猜它是上下文所必需的。
【问题讨论】:
【参考方案1】:试试exit(0)
,但你不能发布它
苹果评论:
我们发现您的应用包含用于退出应用的 UI 控件。 这不符合 ios 人机界面指南,因为 App Store 审核指南要求。
请参考所附截图。
iOS 人机界面指南指定,
“随时准备停止 iOS 应用程序在人们按下时停止 主页按钮打开不同的应用程序或使用设备 功能,例如电话。特别是,人们不会点击 应用程序关闭按钮或从菜单中选择退出。提供一个好的 停止体验,iOS 应用程序应该:
尽快并尽可能频繁地保存用户数据,因为 退出或终止通知可以随时到达。
在停止时以最精细的细节保存当前状态 这样人们在开始 再次申请。例如,如果您的应用显示滚动数据, 保存当前滚动位置。”
删除任何退出应用程序的机制是合适的。
【讨论】:
感谢这对测试有用,需要找出替代方法。 @praza24 你的替代品是什么意思? 我在生产中需要这个,但正如你之前提到的,它不会被苹果通过。我想 UIApplication 总是需要的,点击快捷方式后,即使不需要,也总是启动应用程序。 @praza24 你可以使用全屏 webView :) 或 SFSafariController 这就是我所做的,但应用程序仍在启动以上是关于在 iOS 中启动快捷操作时,有没有办法不打开启动画面/应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
Cocos2d 和 iOS:有没有办法阻止屏幕保护程序在我的游戏中启动?
有没有办法在不重新启动应用程序的情况下使 NSBundle 本地化缓存失效? [iOS]